Adatok másolása és átalakítása Snowflake-ben Azure Data Factory vagy Azure Synapse Analytics használatával

A KÖVETKEZŐKRE VONATKOZIK: Azure Data Factory Azure Synapse Analytics

Ez a cikk azt ismerteti, hogyan használhatja a Copy tevékenység Azure Data Factory és Azure Synapse folyamatokban az adatokat a Snowflake-ból és a Snowflake-be történő másoláshoz, és hogyan alakíthatja át az adatokat a Snowflake Adatfolyam használatával. További információt a Data Factory vagy Azure Synapse Analytics bevezető cikkében talál.

Támogatott képességek

Ez a Snowflake-összekötő a következő képességeket támogatja:

Támogatott képességek IR
Copy tevékenység (forrás/fogadó) ① ②
Adatfolyam leképezése (forrás/fogadó)
Keresési tevékenység ① ②
Parancsprogram-tevékenység ① ②

(1) Azure-integrációs modul (2) Saját üzemeltetésű integrációs modul

A Copy tevékenység ez a Snowflake-összekötő a következő funkciókat támogatja:

  • Másolja az adatokat a Snowflake COPY in [location] parancsát használó Snowflake-ból a legjobb teljesítmény elérése érdekében.
  • A legjobb teljesítmény elérése érdekében másolja az adatokat a Snowflake-ba, amely kihasználja Snowflake COPY into [table] parancsát. Támogatja a Snowflake-t az Azure-ban.
  • Ha proxyra van szükség a Snowflake-hez való csatlakozáshoz egy saját üzemeltetésű Integration Runtime, konfigurálnia kell a környezeti változókat HTTP_PROXY és HTTPS_PROXY a Integration Runtime gazdagépen.

Előfeltételek

Ha az adattár helyszíni hálózaton, Azure-beli virtuális hálózaton vagy Amazon Virtual Private Cloudban található, konfigurálnia kell egy saját üzemeltetésű integrációs modult a csatlakozáshoz. Mindenképpen adja hozzá azokat az IP-címeket, amelyeket a helyi integrációs modul használ az engedélyezett listához.

Ha az adattár felügyelt felhőalapú adatszolgáltatás, használhatja az Azure Integration Runtime. Ha a hozzáférés a tűzfalszabályokban jóváhagyott IP-címekre korlátozódik, felveheti az Azure Integration Runtime IP-címeket az engedélyezett listára.

A Forráshoz vagy a Fogadóhoz használt Snowflake-fióknak rendelkeznie kell a szükséges USAGE hozzáféréssel az adatbázishoz, és olvasási/írási hozzáféréssel kell rendelkeznie a sémán és az alatta lévő táblákon/nézeteken. Emellett a sémának is rendelkeznie CREATE STAGE kell a külső szakasz SAS URI-val való létrehozásához.

A fióktulajdonságok alábbi értékeit be kell állítani

Tulajdonság Leírás Kötelező Alapértelmezett
REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_CREATION Meghatározza, hogy szükség van-e egy tárolóintegrációs objektumra felhőbeli hitelesítő adatokként egy elnevezett külső szakasz létrehozásakor (a CREATE STAGE használatával) a magánfelhő-tárolóhely eléréséhez. HAMIS HAMIS
REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION Meghatározza, hogy szükség van-e egy elnevezett külső szakasz használatára, amely felhőbeli hitelesítő adatokként hivatkozik egy tárolóintegrációs objektumra az adatok magánfelhő-tárolóhelyről való betöltésekor vagy onnan való eltávolításakor. HAMIS HAMIS

A Data Factory által támogatott hálózati biztonsági mechanizmusokkal és beállításokkal kapcsolatos további információkért lásd: Adathozzáférési stratégiák.

Bevezetés

A Copy tevékenység folyamattal való végrehajtásához használja az alábbi eszközök vagy SDK-k egyikét:

Társított szolgáltatás létrehozása a Snowflake-hez felhasználói felülettel

Az alábbi lépésekkel hozzon létre egy társított szolgáltatást a Snowflake-hez a Azure Portal felhasználói felületén.

  1. Keresse meg a kezelés lapot a Azure Data Factory vagy a Synapse-munkaterületen, és válassza a Társított szolgáltatások lehetőséget, majd kattintson az Új gombra:

  2. Keresse meg a Snowflake kifejezést, és válassza ki a Snowflake összekötőt.

    Képernyőkép a Snowflake-összekötőről.

  3. Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.

    Képernyőkép a Snowflake társított szolgáltatáskonfigurációjáról.

Összekötő konfigurációjának részletei

Az alábbi szakaszok részletesen ismertetik a Snowflake-összekötőre jellemző entitásokat definiáló tulajdonságokat.

Társított szolgáltatás tulajdonságai

Ez a Snowflake-összekötő a következő hitelesítési típusokat támogatja. A részletekért tekintse meg a megfelelő szakaszokat.

Alapszintű hitelesítés

Az alábbi tulajdonságok támogatottak a Snowflake társított szolgáltatáshoz alapszintű hitelesítés használata esetén.

Tulajdonság Leírás Kötelező
típus A type tulajdonságot Snowflake értékre kell állítani. Yes
connectionString Megadja a Snowflake-példányhoz való csatlakozáshoz szükséges információkat. Dönthet úgy, hogy jelszót vagy teljes kapcsolati sztring helyez el az Azure Key Vault. További részletekért tekintse meg a táblázat alatti példákat, valamint a Hitelesítő adatok tárolása az Azure Key Vault-ben című cikket.

Néhány tipikus beállítás:
- Fiók neve: A Snowflake-fiók teljes fiókneve (beleértve a régiót és a felhőplatformot azonosító további szegmenseket is), például xy12345.east-us-2.azure.
- Felhasználónév: A felhasználó bejelentkezési neve a kapcsolathoz.
- Jelszó: A felhasználó jelszava.
- Adatbázis: Az alapértelmezett adatbázis, amelyet a csatlakozás után használni kell. Egy meglévő adatbázisnak kell lennie, amelyhez a megadott szerepkör rendelkezik jogosultságokkal.
- Raktár: A csatlakozás után használni kívánt virtuális raktár. Egy meglévő raktárnak kell lennie, amelyhez a megadott szerepkör rendelkezik jogosultságokkal.
- Szerepet: A Snowflake munkamenetben használni kívánt alapértelmezett hozzáférés-vezérlési szerepkör. A megadott szerepkörnek olyan meglévő szerepkörnek kell lennie, amely már hozzá lett rendelve a megadott felhasználóhoz. Az alapértelmezett szerepkör a NYILVÁNOS.
Yes
authenticationType Állítsa ezt a tulajdonságot Alapszintű értékre. Yes
connectVia Az adattárhoz való csatlakozáshoz használt integrációs modul . Használhatja az Azure integrációs modult vagy egy saját üzemeltetésű integrációs modult (ha az adattár privát hálózaton található). Ha nincs megadva, az alapértelmezett Azure-integrációs modult használja. No

Példa

{
    "name": "SnowflakeLinkedService",
    "properties": {
        "type": "Snowflake",
        "typeProperties": {
            "authenticationType": "Basic",
            "connectionString": "jdbc:snowflake://<accountname>.snowflakecomputing.com/?user=<username>&password=<password>&db=<database>&warehouse=<warehouse>&role=<myRole>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Jelszó az Azure Key Vault:

{
    "name": "SnowflakeLinkedService",
    "properties": {
        "type": "Snowflake",
        "typeProperties": {
            "authenticationType": "Basic",
            "connectionString": "jdbc:snowflake://<accountname>.snowflakecomputing.com/?user=<username>&db=<database>&warehouse=<warehouse>&role=<myRole>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                }, 
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Adatkészlet tulajdonságai

Az adathalmazok meghatározásához elérhető szakaszok és tulajdonságok teljes listáját az Adathalmazok című cikkben találja.

A Snowflake adatkészlet esetében az alábbi tulajdonságok támogatottak.

Tulajdonság Leírás Kötelező
típus Az adathalmaz típustulajdonságát SnowflakeTable értékre kell állítani. Yes
schema A séma neve. Figyelje meg, hogy a séma neve megkülönbözteti a kis- és nagybetűk nevét. Nem a forráshoz, igen a fogadóhoz
tábla A tábla/nézet neve. Vegye figyelembe, hogy a tábla neve megkülönbözteti a kis- és nagybetűk nevét. Nem a forráshoz, igen a fogadóhoz

Példa

{
    "name": "SnowflakeDataset",
    "properties": {
        "type": "SnowflakeTable",
        "typeProperties": {
            "schema": "<Schema name for your Snowflake database>",
            "table": "<Table name for your Snowflake database>"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "linkedServiceName": {
            "referenceName": "<name of linked service>",
            "type": "LinkedServiceReference"
        }
    }
}

Másolási tevékenység tulajdonságai

A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok című cikkben találja. Ez a szakasz a Snowflake forrás és fogadó által támogatott tulajdonságok listáját tartalmazza.

Snowflake mint forrás

A Snowflake-összekötő a Snowflake COPY into [location] parancsát használja a legjobb teljesítmény eléréséhez.

Ha a Snowflake COPY parancs natív módon támogatja a fogadó adattárát és formátumát, a Copy tevékenység használatával közvetlenül másolhatja a Snowflake-ből a fogadóba. Részletekért lásd: Közvetlen másolat a Snowflake-ből. Ellenkező esetben használja a Snowflake beépített szakaszos másolatát.

Az adatok Snowflake-ből való másolásához a következő tulajdonságok támogatottak a Copy tevékenység forrás szakaszban.

Tulajdonság Leírás Kötelező
típus A Copy tevékenység forrás típustulajdonságát SnowflakeSource értékre kell állítani. Yes
query Megadja azt az SQL-lekérdezést, amely adatokat olvas be a Snowflake-ből. Ha a séma, a tábla és az oszlopok neve kisbetűket tartalmaz, idézi az objektumazonosítót a lekérdezésben, például: . select * from "schema"."myTable"
A tárolt eljárás végrehajtása nem támogatott.
No
exportSettings Speciális beállítások az adatok Snowflake-ból való lekéréséhez. A COPY által támogatottakat konfigurálhatja olyan parancsba, amelyet a szolgáltatás a utasítás meghívásakor át fog adni. Yes
A alatt exportSettings:
típus Az exportálási parancs típusa, amely SnowflakeExportCopyCommand értékre van állítva. Yes
additionalCopyOptions További másolási lehetőségek, kulcs-érték párok szótáraként. Példák: MAX_FILE_SIZE, FELÜLÍRÁS. További információ: Hópehely másolási beállításai. No
additionalFormatOptions További fájlformátum-beállítások a COPY parancshoz kulcs-érték párok szótáraként. Példák: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. További információt a Snowflake formátumtípus-beállításai című témakörben talál. No

Megjegyzés

Győződjön meg arról, hogy rendelkezik engedéllyel a következő parancs végrehajtásához, valamint a séma INFORMATION_SCHEMA és az OSZLOPOK tábla eléréséhez.

  • COPY INTO <location>

Közvetlen másolat Snowflake-ből

Ha a fogadó adattára és formátuma megfelel az ebben a szakaszban ismertetett feltételeknek, a Copy tevékenység használatával közvetlenül másolhatja a Snowflake-ből a fogadóba. A szolgáltatás ellenőrzi a beállításokat, és nem futtatja a Copy tevékenység, ha a következő feltételek nem teljesülnek:

  • A fogadó társított szolgáltatása az Azure Blob Storageközös hozzáférésű jogosultságkód-hitelesítéssel . Ha közvetlenül az alábbi támogatott formátumban szeretne adatokat másolni Azure Data Lake Storage Gen2, létrehozhat egy Azure Blob társított szolgáltatást SAS-hitelesítéssel az ADLS Gen2-fiókján, hogy elkerülje a Snowflake-ből származó szakaszos másolás használatát.

  • A fogadó adatformátumaParquet, tagolt szöveg vagy JSON , az alábbi konfigurációkkal:

    • Parquet formátum esetén a tömörítési kodek a None, a Snappy vagy a Lzo.
    • Tagolt szövegformátum esetén:
      • rowDelimiter\r\nvagy bármely karakter.
      • compression nem lehet tömörítés, gzip, bzip2 vagy deflátum.
      • encodingName az alapértelmezett érték marad, vagy az utf-8 értékre van állítva.
      • quoteChar dupla idézőjel, egyszeres idézőjel vagy üres sztring (nincs idézőjel).
    • JSON-formátum esetén a közvetlen másolás csak azt az esetet támogatja, hogy a Snowflake forrástáblában vagy lekérdezési eredményben csak egyetlen oszlop szerepel, és az oszlop adattípusa VARIANT, OBJECT vagy ARRAY.
      • compression nem lehet tömörítés, gzip, bzip2 vagy deflátum.
      • encodingName az alapértelmezett érték marad, vagy az utf-8 értékre van állítva.
      • filePattern a másolási tevékenység fogadója alapértelmezettként marad, vagy a setOfObjects értékre van állítva.
  • A másolási tevékenység forrásában additionalColumns nincs megadva.

  • Nincs megadva oszlopleképezés.

Példa

"activities":[
    {
        "name": "CopyFromSnowflake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Snowflake input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SnowflakeSource",
                "sqlReaderQuery": "SELECT * FROM MYTABLE",
                "exportSettings": {
                    "type": "SnowflakeExportCopyCommand",
                    "additionalCopyOptions": {
                        "MAX_FILE_SIZE": "64000000",
                        "OVERWRITE": true
                    },
                    "additionalFormatOptions": {
                        "DATE_FORMAT": "'MM/DD/YYYY'"
                    }
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Szakaszos másolat Snowflake-ből

Ha a fogadó adattára vagy formátuma natív módon nem kompatibilis a Snowflake COPY paranccsal, ahogy azt az előző szakaszban említettük, engedélyezze a beépített szakaszos példányt egy köztes Azure Blob Storage-példány használatával. A szakaszos másolási funkció jobb átviteli sebességet is biztosít. A szolgáltatás adatokat exportál a Snowflake-ból az átmeneti tárolóba, majd átmásolja az adatokat a fogadóba, és végül törli az ideiglenes adatokat az átmeneti tárolóból. Az adatok átmeneti másolással történő másolásával kapcsolatos részletekért lásd: Szakaszos másolás .

A funkció használatához hozzon létre egy Azure Blob Storage társított szolgáltatást , amely átmeneti előkészítésként hivatkozik az Azure Storage-fiókra. Ezután adja meg a és stagingSettings a enableStaging tulajdonságot a Copy tevékenység.

Megjegyzés

Az átmeneti Azure Blob Storage társított szolgáltatásnak a Snowflake COPY parancs által megkövetelt közös hozzáférésű jogosultságkód-hitelesítést kell használnia. Győződjön meg arról, hogy megfelelő hozzáférési engedélyt ad a Snowflake-nek az átmeneti Azure Blob Storage-ban. Erről a cikkből tudhat meg többet.

Példa

"activities":[
    {
        "name": "CopyFromSnowflake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Snowflake input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SnowflakeSource",               
                "sqlReaderQuery": "SELECT * FROM MyTable",
                "exportSettings": {
                    "type": "SnowflakeExportCopyCommand"
                }
            },
            "sink": {
                "type": "<sink type>"
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingBlob",
                    "type": "LinkedServiceReference"
                },
                "path": "mystagingpath"
            }
        }
    }
]

Hópehely fogadóként

A Snowflake-összekötő a Snowflake COPY into [table] parancsát használja a legjobb teljesítmény eléréséhez. Támogatja az adatok írását az Azure-beli Snowflake-be.

Ha a Snowflake COPY parancs natív módon támogatja a forrásadattárat és a formátumot, a Copy tevékenység használatával közvetlenül másolhat a forrásból a Snowflake-be. Részletekért lásd: Közvetlen másolás Snowflake-be. Ellenkező esetben használja a Snowflake beépített szakaszos másolatát.

Ha adatokat szeretne másolni a Snowflake-be, az alábbi tulajdonságok támogatottak a Copy tevékenység fogadó szakaszban.

Tulajdonság Leírás Kötelező
típus A Copy tevékenység fogadó type tulajdonsága SnowflakeSink értékre állítva. Yes
preCopyScript Adjon meg egy SQL-lekérdezést a Copy tevékenység futtatásához, mielőtt adatokat írna a Snowflake-be minden futtatás során. Ezzel a tulajdonságkal törölheti az előre betöltött adatokat. No
importSettings Speciális beállítások az adatok Snowflake-be való írásához. A COPY által támogatottakat konfigurálhatja olyan parancsba, amelyet a szolgáltatás a utasítás meghívásakor át fog adni. Yes
A alatt importSettings:
típus Az importálási parancs típusa, amely SnowflakeImportCopyCommand értékre van állítva. Yes
additionalCopyOptions További másolási lehetőségek, kulcs-érték párok szótáraként. Példák: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. További információ: Hópehely másolási beállításai. No
additionalFormatOptions További fájlformátum-beállítások a COPY parancshoz, kulcs-érték párok szótáraként. Példák: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. További információt a Snowflake formátumtípus-beállításai című témakörben talál. No

Megjegyzés

Győződjön meg arról, hogy rendelkezik engedéllyel a következő parancs végrehajtásához, valamint a séma INFORMATION_SCHEMA és az OSZLOPOK tábla eléréséhez.

  • SELECT CURRENT_REGION()
  • COPY INTO <table>
  • SHOW REGIONS
  • CREATE OR REPLACE STAGE
  • DROP STAGE

Közvetlen másolás Snowflake-be

Ha a forrásadattár és a formátum megfelel az ebben a szakaszban ismertetett feltételeknek, a Copy tevékenység használatával közvetlenül másolhat a forrásból a Snowflake-be. A szolgáltatás ellenőrzi a beállításokat, és nem futtatja a Copy tevékenység, ha a következő feltételek nem teljesülnek:

  • A forrás társított szolgáltatás az Azure Blob Storageközös hozzáférésű jogosultságkód-hitelesítéssel . Ha a következő támogatott formátumban szeretne közvetlenül adatokat másolni Azure Data Lake Storage Gen2-ből, létrehozhat egy Azure Blob társított szolgáltatást SAS-hitelesítéssel az ADLS Gen2-fiókján, hogy elkerülje a Snowflake-be történő szakaszos másolás használatát.

  • A forrásadat-formátuma Parquet, a Tagolt szöveg vagy a JSON az alábbi konfigurációkkal:

    • Parquet formátum esetén a tömörítési kodek a None vagy a Snappy.

    • Tagolt szövegformátum esetén:

      • rowDelimiter\r\nvagy bármely karakter. Ha a sorelválasztó nem "\r\n", firstRowAsHeaderhamisnak kell lennie, és skipLineCount nincs megadva.
      • compression nem lehet tömörítés, gzip, bzip2 vagy deflátum.
      • encodingName alapértelmezettként marad, vagy "UTF-8", "UTF-16", "UTF-16BE" értékre van állítva, "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", "WINDOWS-1255".
      • quoteChar dupla idézőjel, egyszeres idézőjel vagy üres sztring (nincs idézőjel).
    • JSON-formátum esetén a közvetlen másolás csak azt az esetet támogatja, hogy a Fogadó Snowflake tábla csak egyetlen oszlopot tartalmaz, és ennek az oszlopnak az adattípusa VARIANT, OBJECT vagy ARRAY.

      • compression nem lehet tömörítés, gzip, bzip2 vagy deflátum.
      • encodingName az alapértelmezett érték marad, vagy az utf-8 értékre van állítva.
      • Nincs megadva oszlopleképezés.
  • A Copy tevékenység forrásban:

    • additionalColumns nincs megadva.
    • Ha a forrás egy mappa, recursive akkor igaz értékre van állítva.
    • prefix, modifiedDateTimeStart, modifiedDateTimeEndés enablePartitionDiscovery nincs megadva.

Példa

"activities":[
    {
        "name": "CopyToSnowflake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Snowflake output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "SnowflakeSink",
                "importSettings": {
                    "type": "SnowflakeImportCopyCommand",
                    "copyOptions": {
                        "FORCE": "TRUE",
                        "ON_ERROR": "SKIP_FILE"
                    },
                    "fileFormatOptions": {
                        "DATE_FORMAT": "YYYY-MM-DD"
                    }
                }
            }
        }
    }
]

Szakaszos másolat a Snowflake-hez

Ha a forrásadattár vagy -formátum natív módon nem kompatibilis a Snowflake COPY paranccsal, ahogy azt az előző szakaszban említettük, engedélyezze a beépített szakaszos példányt egy köztes Azure Blob Storage-példány használatával. A szakaszos másolási funkció jobb átviteli sebességet is biztosít. A szolgáltatás automatikusan átalakítja az adatokat, hogy megfeleljenek a Snowflake adatformátum-követelményeinek. Ezután meghívja a COPY parancsot az adatok Snowflake-be való betöltéséhez. Végül törli az ideiglenes adatokat a blobtárolóból. Az adatok átmeneti másolással történő másolásával kapcsolatos részletekért lásd: Szakaszos másolás .

A funkció használatához hozzon létre egy Azure Blob Storage társított szolgáltatást , amely átmeneti előkészítésként hivatkozik az Azure Storage-fiókra. Ezután adja meg a és stagingSettings a enableStaging tulajdonságot a Copy tevékenység.

Megjegyzés

Az átmeneti Azure Blob Storage társított szolgáltatásnak a Snowflake COPY parancs által megkövetelt közös hozzáférésű jogosultságkód-hitelesítést kell használnia.

Példa

"activities":[
    {
        "name": "CopyToSnowflake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Snowflake output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "SnowflakeSink",
                "importSettings": {
                    "type": "SnowflakeImportCopyCommand"
                }
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingBlob",
                    "type": "LinkedServiceReference"
                },
                "path": "mystagingpath"
            }
        }
    }
]

Adatfolyam-tulajdonságok leképezése

A leképezési adatfolyam adatainak átalakításakor a Snowflake-ban olvashat a táblákból, és beírhatja azokat a táblákba. További információkért lásd a forrásátalakítást és a fogadó transzformációt az adatfolyamok leképezésében. Választhat, hogy Snowflake-adatkészletet vagy beágyazott adatkészletet használ forrás- és fogadótípusként.

Forrásátalakítás

Az alábbi táblázat a Snowflake-forrás által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Forrásbeállítások lapon szerkesztheti. Az összekötő Snowflake belső adatátvitelt használ.

Név Leírás Kötelező Megengedett értékek Adatfolyam-szkript tulajdonság
Tábla Ha bemenetként a Tábla lehetőséget választja, az adatfolyam a Snowflake-adatkészletben vagy a forrásbeállításokban megadott összes adatot lekéri beágyazott adathalmaz használatakor. Nem Sztring (csak beágyazott adathalmaz esetén)
tableName
schemaName
Lekérdezés Ha bemenetként a Lekérdezés lehetőséget választja, adjon meg egy lekérdezést az adatok Snowflake-ból való lekéréséhez. Ez a beállítás felülbírálja az adathalmazban kiválasztott táblákat.
Ha a séma, a tábla és az oszlopok neve kisbetűket tartalmaz, idézi az objektumazonosítót a lekérdezésben, például: . select * from "schema"."myTable"
Nem Sztring query

Példák a Snowflake forrásszkriptre

Ha a Snowflake-adatkészletet használja forrástípusként, a társított adatfolyam-szkript a következő:

source(allowSchemaDrift: true,
	validateSchema: false,
	query: 'select * from MYTABLE',
	format: 'query') ~> SnowflakeSource

Beágyazott adathalmaz használata esetén a társított adatfolyam-szkript a következő:

source(allowSchemaDrift: true,
	validateSchema: false,
	format: 'query',
	query: 'select * from MYTABLE',
	store: 'snowflake') ~> SnowflakeSource

Fogadó átalakítása

Az alábbi táblázat a Snowflake fogadó által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Beállítások lapon szerkesztheti. Beágyazott adatkészlet használata esetén további beállítások jelennek meg, amelyek megegyeznek az adathalmaz tulajdonságainak szakaszában ismertetett tulajdonságokkal. Az összekötő Snowflake belső adatátvitelt használ.

Név Leírás Kötelező Megengedett értékek Adatfolyam-szkript tulajdonsága
Frissítési módszer Adja meg, hogy milyen műveletek engedélyezettek a Snowflake-célhelyen.
A sorok frissítéséhez, frissítéséhez vagy törléséhez alter row transformationre van szükség az adott műveletek sorainak címkézéséhez.
Yes true vagy false törölhető
beszúrható
Frissíthető
upsertable
Kulcsoszlopok Frissítések, upserts és deletes esetén egy kulcsoszlopot vagy oszlopot kell beállítani annak meghatározásához, hogy melyik sort kell módosítani. No Tömb keys
Táblaművelet Meghatározza, hogy az írás előtt újra létre kell-e hoznia vagy el kell-e távolítania az összes sort a céltáblából.
- Nincs: A rendszer nem hajt végre műveletet a táblán.
- Újra: A tábla elvetve és újra létrehozva lesz. Új tábla dinamikus létrehozása esetén kötelező.
- Truncate: A céltábla összes sora el lesz távolítva.
No true vagy false Újra
Megcsonkít

Snowflake fogadó szkript példák

Ha a Snowflake adatkészletet fogadótípusként használja, a társított adatfolyam-szkript a következő:

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	deletable:true,
	insertable:true,
	updateable:true,
	upsertable:false,
	keys:['movieId'],
	format: 'table',
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> SnowflakeSink

Beágyazott adatkészlet használata esetén a társított adatfolyam-szkript a következő:

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	format: 'table',
	tableName: 'table',
	schemaName: 'schema',
	deletable: true,
	insertable: true,
	updateable: true,
	upsertable: false,
	store: 'snowflake',
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> SnowflakeSink

Keresési tevékenység tulajdonságai

A tulajdonságokról további információt a Keresési tevékenység című témakörben talál.

Következő lépések

Az Copy tevékenység által forrásként és fogadóként támogatott adattárak listáját a támogatott adattárak és formátumok című témakörben találja.