Freigeben über


Konfigurieren von Snowflake in einer Copy-Aktivität

In diesem Artikel wird beschrieben, wie Sie die Copy-Aktivität in einer Datenpipeline verwenden, um Daten aus und in Snowflake zu kopieren.

Unterstützte Konfiguration

Die Konfiguration der einzelnen Registerkarten unter der Kopieraktivität finden Sie in den folgenden Abschnitten.

Allgemein

Informationen zum Konfigurieren der Registerkarte Allgemein finden Sie unter Allgemeine Einstellungen.

Quelle

Die folgenden Eigenschaften werden für Snowflake auf der Registerkarte Quelle einer Copy-Aktivität unterstützt.

Screenshot der Registerkarte „Quelle“ mit der Liste der Eigenschaften

Die folgenden Eigenschaften sind erforderlich:

  • Datenspeichertyp: Wählen Sie Extern aus.
  • Verbindung: Wählen Sie in der Verbindungsliste eine Snowflake-Verbindung aus. Wenn die Verbindung nicht vorhanden ist, erstellen Sie eine neue Snowflake-Verbindung, indem Sie Neu auswählen.
  • Datenbank: Die Standarddatenbank, die nach dem Herstellen der Verbindung verwendet werden soll. Dabei sollte es sich um eine vorhandene Datenbank handeln, für die die angegebene Rolle über die erforderlichen Berechtigungen verfügt.
  • Verwendungsabfrage: Sie können entweder Tabelle oder Abfrage als verwendete Abfrage auswählen. In der folgenden Liste wird die Konfiguration der einzelnen Einstellungen beschrieben.
    • Tabelle: Wählen Sie in der Dropdownliste die Tabelle in Ihrer Datenbank aus. Sie können auch Bearbeiten aktivieren, um den Tabellennamen manuell einzugeben.
    • Abfrage: Geben Sie die SQL-Abfrage an, mit der Daten aus Snowflake gelesen werden. Wenn der Name des Schemas, der Tabelle und Spalten Kleinbuchstaben enthält, geben Sie den Objektbezeichner in der Abfrage an, z. B. select * from "schema"."myTable".

Unter Erweitert können Sie die folgenden Felder angeben:

  • Storage-Integration: Gibt den Namen der Speicherintegration an, die Sie in Ihrer Snowflake-Instanz erstellt haben. Die Schritte, die Sie vor der Verwendung der Speicherintegration ausführen müssen, finden Sie unter Konfigurieren einer Snowflake-Speicherintegration.

  • Zusätzliche Snowflake-Kopieroptionen: Geben Sie zusätzliche Snowflake-Kopieroptionen an, die in der Snowflake-COPY-Anweisung zum Laden von Daten verwendet werden. Zusätzliche Kopieroptionen werden als Wörterbuch mit Schlüssel-Wert-Paaren bereitgestellt. Beispiele: MAX_FILE_SIZE, OVERWRITE. Weitere Informationen finden Sie unter Snowflake Copy Options (Snowflake-Kopieroptionen).

    Screenshot der zusätzlichen Snowflake-Kopieroptionen für die Quelle

  • Zusätzliche Snowflake-Formatoptionen: Geben Sie zusätzliche Snowflake-Formatoptionen an, die in der Snowflake-COPY-Anweisung zum Laden von Daten verwendet werden. Zusätzliche Dateiformatoptionen für den COPY-Befehl werden als Wörterbuch mit Schlüssel-Wert-Paaren bereitgestellt. Beispiele: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Weitere Informationen finden Sie unter Snowflake Format Type Options (Snowflake-Formattypoptionen).

    Screenshot der zusätzlichen Snowflake-Formatoptionen für die Quelle

Direktes Kopieren aus Snowflake

Wenn der Zieldatenspeicher und das Format die in diesem Abschnitt beschriebenen Kriterien erfüllen, können Sie mit der Copy-Aktivität Kopiervorgänge direkt aus Snowflake am Ziel durchführen. Der Dienst überprüft die Einstellungen und gibt bei der Copy-Aktivitätsausführung einen Fehler aus, wenn die folgenden Kriterien nicht erfüllt werden:

  • Wenn Sie die Storage-Integration in der Quelle angeben: Der Zieldatenspeicher ist der Azure Blob Storage, auf den Sie in der externen Phase in Snowflake verwiesen haben. Sie müssen die folgenden Schritte ausführen, bevor Sie Daten kopieren:

    1. Erstellen Sie eine Azure Blob Storage-Verbindung für die Azure Blob Storage-Zielinstanz, der über alle unterstützten Authentifizierungstypen verfügt.

    2. Gewähren Sie dem Snowflake-Dienstprinzipal in der Zugriffssteuerung (IAM) der Zielinstanz von Azure Blob Storage mindestens die Rolle Mitwirkender an Storage-Blobdaten.

  • Wenn Sie Storage-Integration nicht in der Quelle angeben:

    Die Zielverbindung ist Azure Blob Storage mit SAS-Authentifizierung. Wenn Sie Daten im folgenden unterstützten Format direkt zu Azure Data Lake Storage Gen2 kopieren möchten, können Sie eine Azure Blob Storage-Verbindung mit SAS-Authentifizierung für Ihr Azure Data Lake Storage Gen2-Konto erstellen. Damit vermeiden Sie gestagte Kopiervorgänge aus Snowflake.

  • Das Zieldatenformat lautet Parquet, DelimitedText (Durch Trennzeichen getrennter Text) oder JSON mit den folgenden Konfigurationen:

    • Beim Format Parquet wird einer der Komprimierungscodecs None, Snappy oder Lzo verwendet.
    • Für das Format DelimitedText (Durch Trennzeichen getrennter Text):
      • Das Zeilentrennzeichen ist \r\n oder ein beliebiges einzelnes Zeichen.
      • Als Komprimierungstyp kann None, gzip, bzip2 oder deflate verwendet werden.
      • Für die Codierung können Sie den Standardwert übernehmen oder UTF-8 festlegen.
      • Als Anführungszeichen kann Doppeltes Anführungszeichen, Einfaches Anführungszeichen oder Kein Anführungszeichen angegeben werden.
    • Für das JSON-Format unterstützt direktes Kopieren nur den Fall, dass die Snowflake-Quelltabelle oder das Abfrageergebnis nur eine einzelne Spalte hat und der Datentyp dieser Spalte VARIANT, OBJECT oder ARRAY ist.
      • Als Komprimierungstyp kann None, gzip, bzip2 oder deflate verwendet werden.
      • Für die Codierung können Sie den Standardwert übernehmen oder UTF-8 festlegen.
      • Für das Dateimuster am Ziel der Copy-Aktivität können Sie den Standardwert beibehalten oder Satz von Objekten festlegen.
  • In der Quelle der Copy-Aktivität ist Zusätzliche Spalten nicht angegeben.

  • Die Spaltenzuordnung ist nicht angegeben.

Gestaffeltes Kopieren aus Snowflake

Wenn der Zieldatenspeicher oder das Format nicht nativ mit dem Snowflake-Befehl „COPY“ kompatibel ist (wie im letzten Abschnitt beschrieben), aktivieren Sie mithilfe einer Azure Blob Storage-Zwischeninstanz das integrierte gestaffelte Kopieren. Das Feature für gestaffeltes Kopieren bietet Ihnen auch einen höheren Durchsatz. Der Dienst exportiert Daten aus Snowflake in den Stagingspeicher, kopiert dann die Daten in das Ziel und bereinigt schließlich die temporären Daten aus dem Stagingspeicher.

Um diese Funktion verwenden zu können, erstellen Sie eine mit Azure Blob Storage-Verbindung, die auf das Azure Storage-Konto als Staging-Zwischenspeicher verweist. Wechseln Sie dann zur Registerkarte Einstellungen, um Ihre Staging-Einstellungen zu konfigurieren. Sie müssen Extern auswählen, um die Azure Blob Storage-Staging-Verbindung zu konfigurieren.

  • Wenn Sie Storage-Integration in der Quelle angeben, sollte das Zwischenstaginginstanz von Azure Blob Storage die sein, auf die Sie in der externen Stage in Snowflake verwiesen haben. Achten Sie darauf, eine Azure Blob Storage-Verbindung dafür zu erstellen, die über alle unterstützten Authentifizierungen verfügt, und gewähren Sie dem Snowflake-Dienstprinzipal in der Zugriffssteuerung (IAM) der Azure Blob Storage-Staginginstanz mindestens die Rolle Mitwirkender an Storage-Blobdaten. Der Speicherpfad unter Staging-Einstellungen auf der Registerkarte Einstellungen ist erforderlich.

  • Wenn Sie Storage-Integration nicht in der Quelle angeben, muss die Azure Blob Storage-Staging-Verbindung die SAS-Authentifizierung verwenden, die für den Snowflake-Befehl „COPY“ erforderlich ist. Erteilen Sie Snowflake die erforderlichen Zugriffsberechtigungen in Azure Blob Storage-Staginginstanz. Weitere Informationen hierzu finden Sie in diesem Artikel.

Destination

Die folgenden Eigenschaften werden für Snowflake auf der Registerkarte Ziel einer Copy-Aktivität unterstützt.

Screenshot der Registerkarte „Ziel“

Die folgenden Eigenschaften sind erforderlich:

  • Datenspeichertyp: Wählen Sie Extern aus.
  • Verbindung: Wählen Sie in der Verbindungsliste eine Snowflake-Verbindung aus. Wenn die Verbindung nicht vorhanden ist, erstellen Sie eine neue Snowflake-Verbindung, indem Sie Neu auswählen.
  • Datenbank: Die Standarddatenbank, die nach dem Herstellen der Verbindung verwendet werden soll. Dabei sollte es sich um eine vorhandene Datenbank handeln, für die die angegebene Rolle über die erforderlichen Berechtigungen verfügt.
  • Tabelle: Wählen Sie in der Dropdownliste die Tabelle in Ihrer Datenbank aus. Sie können auch Bearbeiten aktivieren, um den Tabellennamen manuell einzugeben.

Unter Erweitert können Sie die folgenden Felder angeben:

  • Skript vor Kopiervorgang: Geben Sie ein Skript für die Copy-Aktivität an, das bei jeder Ausführung vor dem Schreiben von Daten in eine Zieltabelle ausgeführt werden soll. Sie können diese Eigenschaft nutzen, um die vorab geladenen Daten zu bereinigen.

  • Storage-Integration: Gibt den Namen der Speicherintegration an, die Sie in Ihrer Snowflake-Instanz erstellt haben. Die Schritte, die Sie vor der Verwendung der Speicherintegration ausführen müssen, finden Sie unter Konfigurieren einer Snowflake-Speicherintegration.

  • Zusätzliche Snowflake-Kopieroptionen: Geben Sie zusätzliche Snowflake-Kopieroptionen an, die in der Snowflake-COPY-Anweisung zum Laden von Daten verwendet werden. Zusätzliche Kopieroptionen werden als Wörterbuch mit Schlüssel-Wert-Paaren bereitgestellt. Beispiele: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. Weitere Informationen finden Sie unter Snowflake Copy Options (Snowflake-Kopieroptionen).

    Screenshot der zusätzlichen Snowflake-Kopieroptionen für das Ziel

  • Zusätzliche Snowflake-Formatoptionen: Geben Sie zusätzliche Snowflake-Formatoptionen an, die in der Snowflake-COPY-Anweisung zum Laden von Daten verwendet werden. Zusätzliche Dateiformatoptionen für den COPY-Befehl werden als Wörterbuch mit Schlüssel-Wert-Paaren bereitgestellt. Beispiele: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Weitere Informationen finden Sie unter Snowflake Format Type Options (Snowflake-Formattypoptionen).

    Screenshot der zusätzlichen Snowflake-Formatoptionen für das Ziel

Direktes Kopieren in Snowflake

Wenn der Quelldatenspeicher und das Format die in diesem Abschnitt beschriebenen Kriterien erfüllen, können Sie mit der Kopieraktivität Kopiervorgänge direkt aus der Quelle in Snowflake durchführen. Der Dienst überprüft die Einstellungen und gibt bei der Copy-Aktivitätsausführung einen Fehler aus, wenn die folgenden Kriterien nicht erfüllt werden:

  • Wenn Sie die Storage-Integration im Ziel angeben:

    Der Quelldatenspeicher ist die Azure Blob Storage-Instanz, auf die Sie in der externen Stage in Snowflake verwiesen haben. Sie müssen die folgenden Schritte ausführen, bevor Sie Daten kopieren:

    1. Erstellen Sie eine Azure Blob Storage-Verbindung für die Azure Blob Storage-Quellinstanz, der über alle unterstützten Authentifizierungstypen verfügt.

    2. Gewähren Sie dem Snowflake-Dienstprinzipal mindestens die Rolle Storage-Blobdatenleser in der Zugriffssteuerung (IAM) der Azure Blob Storage-Quellinstanz.

  • Wenn Sie keine Storage-Integration im Ziel angeben:

    Die Quellverbindung ist Azure Blob Storage mit SAS-Authentifizierung. Wenn Sie Daten im folgenden unterstützten Format direkt aus Azure Data Lake Storage Gen2 kopieren möchten, können Sie eine Azure Blob Storage-Verbindung mit SAS-Authentifizierung für Ihr Azure Data Lake Storage Gen2-Konto erstellen. Damit vermeiden Sie gestagte Kopiervorgänge zu Snowflake.

  • Das Quelldatenformat lautet Parquet, DelimitedText (Durch Trennzeichen getrennter Text) oder JSON mit den folgenden Konfigurationen:

    • Beim Format Parquet wird einer der Komprimierungscodecs None oder Snappy verwendet.

    • Für das Format DelimitedText (Durch Trennzeichen getrennter Text):

      • Das Zeilentrennzeichen ist \r\n oder ein beliebiges einzelnes Zeichen. Wenn das Zeilentrennzeichen nicht „\r\n“ ist, ist Erste Zeile als Überschrift deaktiviert, und die Anzahl übersprungener Zeilen wird nicht angegeben.
      • Als Komprimierungstyp kann None, gzip, bzip2 oder deflate verwendet werden.
      • Als Codierung wird der Standardwert übernommen oder „UTF-8“, „UTF-16“, „UTF-16BE“, „UTF-32“, „UTF-32BE“, „BIG5“, „EUC-JP“, „EUC-KR“, „GB18030“, „ISO-2022-JP“, „ISO-2022-KR“, „ISO-8859-1“, „ISO-8859-2“, „ISO-8859-5“, „ISO-8859-6“, „ISO-8859-7“, „ISO-8859-8“, „ISO-8859-9“, „WINDOWS-1250“, „WINDOWS-1251“, „WINDOWS-1252“, „WINDOWS-1253“, „WINDOWS-1254“ oder „WINDOWS-1255“ festgelegt.
      • Als Anführungszeichen kann Doppeltes Anführungszeichen, Einfaches Anführungszeichen oder Kein Anführungszeichen angegeben werden.
    • Für das JSON-Format unterstützt direktes Kopieren nur den Fall, dass die Snowflake-Zieltabelle nur eine einzelne Spalte hat und der Datentyp dieser Spalte VARIANT, OBJECT oder ARRAY ist.

      • Als Komprimierungstyp kann None, gzip, bzip2 oder deflate verwendet werden.
      • Für die Codierung können Sie den Standardwert übernehmen oder UTF-8 festlegen.
      • Die Spaltenzuordnung ist nicht angegeben.
  • In der Quelle der Kopieraktivität:

    • Zusätzliche Spalten werden nicht angegeben.
    • Wenn Ihre Quelle ein Ordner ist, wird Rekursiv ausgewählt.
    • Präfix, Startzeit (UTC) und Endzeit (UTC) in Nach letzter Änderung filtern und Partitionsermittlung aktivieren sind nicht angegeben.

Gestaffeltes Kopieren in Snowflake

Wenn der Quelldatenspeicher oder das Format nicht nativ mit dem Snowflake-Befehl „COPY“ kompatibel ist (wie im letzten Abschnitt beschrieben), aktivieren Sie mithilfe einer Azure Blob Storage-Zwischeninstanz das integrierte gestaffelte Kopieren. Das Feature für gestaffeltes Kopieren bietet Ihnen auch einen höheren Durchsatz. Der Dienst konvertiert die Daten automatisch, damit das Datenformat den Anforderungen von Snowflake entspricht. Dann wird der Befehl „COPY“ aufgerufen, um die Daten in Snowflake zu laden. Abschließend werden Sie die temporären Daten in Blob Storage bereinigt.

Um diese Funktion verwenden zu können, erstellen Sie eine mit Azure Blob Storage-Verbindung, die auf das Azure Storage-Konto als Staging-Zwischenspeicher verweist. Wechseln Sie dann zur Registerkarte Einstellungen, um Ihre Staging-Einstellungen zu konfigurieren. Sie müssen Extern auswählen, um die Azure Blob Storage-Staging-Verbindung zu konfigurieren.

  • Wenn Sie Storage-Integration im Ziel angeben, sollte das Zwischenstaginginstanz von Azure Blob Storage die sein, auf die Sie in der externen Stage in Snowflake verwiesen haben. Achten Sie darauf, eine Azure Blob Storage-Verbindung dafür zu erstellen, die über alle unterstützten Authentifizierungen verfügt, und gewähren Sie dem Snowflake-Dienstprinzipal in der Zugriffssteuerung (IAM) der Azure Blob Storage-Staginginstanz mindestens die Rolle Storage-Blobdatenleser. Der Speicherpfad unter Staging-Einstellungen auf der Registerkarte Einstellungen ist erforderlich.

  • Wenn Sie Storage-Integration nicht im Ziel angeben, muss die Azure Blob Storage-Staging-Verbindung die SAS-Authentifizierung verwenden, die für den Snowflake-Befehl „COPY“ erforderlich ist.

Zuordnung

Wechseln Sie für die Konfiguration der Registerkarte Zuordnung zu Konfigurieren der Zuordnungen auf der Registerkarte „Zuordnung“.

Einstellungen

Wechseln Sie für die Konfiguration der Registerkarte Einstellungen zu Konfigurieren der anderen Einstellungen auf der Registerkarte „Einstellungen“.

Tabellenzusammenfassung

Die folgenden Tabellen enthalten weitere Informationen zur Copy-Aktivität in Snowflake.

Quelle

Name Beschreibung Wert Erforderlich JSON-Skripteigenschaft
Datenspeichertyp Ihr Datenspeichertyp Extern Ja /
Verbindung Ihre Verbindung mit dem Quelldatenspeicher < Ihre Verbindung > Ja Verbindung
Datenbank Ihre Datenbank, die Sie als Quelle verwenden. < Ihre Datenbank > Ja database
Abfrage verwenden Die Methode zum Lesen von Daten aus Snowflake. • Tabelle
• Abfrage
Nein • Tabelle
• Abfrage
Tabelle Der Name der Tabelle, aus der gelesen werden soll. < Name Ihrer Quelltabelle > Ja schema
table
Abfrage Die SQL-Abfrage, mit der Daten aus Snowflake gelesen werden. < Name Ihrer Quellabfrage> Ja query
Speicherintegration Gibt den Namen der Speicherintegration an, die Sie in Ihrer Snowflake-Instanz erstellt haben. Die Schritte, die Sie vor der Verwendung der Speicherintegration ausführen müssen, finden Sie unter Konfigurieren einer Snowflake-Speicherintegration. < Ihre Speicherintegration > No storageIntegration
Zusätzliche Snowflake-Kopieroptionen Zusätzliche Kopieroptionen, die als Wörterbuch mit Schlüssel-Wert-Paaren bereitgestellt werden. Beispiele: MAX_FILE_SIZE, OVERWRITE. Weitere Informationen finden Sie unter Snowflake Copy Options (Snowflake-Kopieroptionen). • Name
• Wert
Nein additionalCopyOptions
Zusätzliche Snowflake-Formatoptionen Zusätzliche Dateiformatoptionen, die im Befehl „COPY“ als Wörterbuch mit Schlüssel-Wert-Paaren bereitgestellt werden. Beispiele: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Weitere Informationen finden Sie unter Snowflake Format Type Options (Snowflake-Formattypoptionen). • Name
• Wert
Nein additionalFormatOptions

Destination

Hinweis

Während Nicht-Azure Snowflake-Instances für die Quelle unterstützt werden, werden derzeit nur Azure Snowflake-Instances für Snowflake-Ziele unterstützt (in Azure Data Factory auch als Senken bezeichnet).

Name Beschreibung Wert Erforderlich JSON-Skripteigenschaft
Datenspeichertyp Ihr Datenspeichertyp Extern Ja /
Verbindung Ihre Verbindung mit dem Zieldatenspeicher. < Ihre Verbindung > Ja Verbindung
Datenbank Ihre Datenbank, die Sie als Ziel verwenden. < Ihre Datenbank > Ja /
Tabelle Ihre Zieldatentabelle. < Name Ihrer Zieltabelle > Ja • Schema
• Tabelle
Skript vor Kopiervorgang Eine SQL-Abfrage, die bei jeder Ausführung der Copy-Aktivität ausgeführt werden soll, bevor Daten in Snowflake geschrieben werden. Sie können diese Eigenschaft nutzen, um vorab geladene Daten zu bereinigen. < Ihr Skript vor dem Kopiervorgang > NO preCopyScript
Speicherintegration Gibt den Namen der Speicherintegration an, die Sie in Ihrer Snowflake-Instanz erstellt haben. Die Schritte, die Sie vor der Verwendung der Speicherintegration ausführen müssen, finden Sie unter Konfigurieren einer Snowflake-Speicherintegration. < Ihre Speicherintegration > No storageIntegration
Zusätzliche Snowflake-Kopieroptionen Zusätzliche Kopieroptionen, die als Wörterbuch mit Schlüssel-Wert-Paaren bereitgestellt werden. Beispiele: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. Weitere Informationen finden Sie unter Snowflake Copy Options (Snowflake-Kopieroptionen). • Name
• Wert
Nein additionalCopyOptions
Zusätzliche Snowflake-Formatoptionen Zusätzliche Dateiformatoptionen, die im Befehl „COPY“ als Wörterbuch mit Schlüssel-Wert-Paaren bereitgestellt werden. Beispiele: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Weitere Informationen finden Sie unter Snowflake Format Type Options (Snowflake-Formattypoptionen). • Name
• Wert
Nein additionalFormatOptions