Jede Aktivität, die wir innerhalb einer Pipeline erstellen, muss ein Ausgabe-Dataset haben - was meiner Meinung nach eine rein syntaktische Regel ist, wenn die Aktivität vom Typ 'HDInsightHive' ist. Denn sowieso wird das eigentliche Ausgabeziel von der HQL-Abfrage selbst bestimmt. In unserem Fall beispielsweise wählt die HQL-Abfrage Zeilen aus bestimmten Tabellen aus und fügt Zeilen in eine andere externe Tabelle ein. Letztendlich bestimmt HQL, wo die Ausgabe hingeht. Der Name der Zieltabelle erscheint in der HQL selbst (INSERT OVERWRITE Tabellenname ..). In diesem Fall scheint das in der Aktivität definierte Ausgabe-Dataset nur als ein syntaktischer Klebstoff zu fungieren, der dafür da sein muss. Ist das korrekt?Ist das Ausgabe-Dataset wirklich wichtig für den HDInsightHive-Aktivitätstyp?
2
A
Antwort
2
Es ist wahr, dass Sie definieren können, wo die Daten in einer HQL-Abfrage landen werden, genau wie in einer USQL-Abfrage. Die Hauptfunktion des Ausgabedatensatzes, wie ich es sehe, wäre, dass Sie die Ausgabe in eine andere Aktivität leiten können. Wenn Sie keinen Ausgabedatensatz definiert haben oder ihn nicht mit einem Ordner definiert haben, der nicht dem Speicherort des HQL-Skripts entspricht, können Sie diesen Datensatz nicht als Eingabe für eine andere Aktivität verwenden. Wenn ALLE Ihre Pipelines immer mit Ihrer HQL-Aktivität enden und Sie danach nie etwas tun müssen, kann ich sehen, wie es aussieht, als ob kein Ausgabedatensatz benötigt wird.
HTH