Megosztás a következőn keresztül:


Snowflake használata Iceberg táblákkal a OneLake-ben

A Microsoft OneLake a Snowflake-nal használható Apache Iceberg-táblák tárolására és elérésére.

Kövesse az alábbi útmutatót a Snowflake azure-ra való használatához:

  • Iceberg-táblák írása közvetlenül a OneLake-be
  • a Delta Lake formátumból konvertált virtuális Iceberg-táblák olvasása

Important

Ez a funkció előzetes verzióban érhető el.

Az első lépések előtt kövesse az alábbi előfeltételek lépéseit.

Prerequisite

Ahhoz, hogy a Snowflake az Azure-ban Iceberg-táblákat írjon vagy olvashasson a OneLake használatával, a Snowflake-fiók Entra-azonosítóban lévő identitásának képesnek kell lennie kommunikálni a Fabrictel. Engedélyezze a Fabric bérlőszintű beállításait, amelyek lehetővé teszik a szolgáltatási főkulcsok számára, hogy a Fabric API-kat meghívják és a OneLake API-kat meghívják.

Iceberg-táblázat írása a OneLake-be a Snowflake használatával az Azure-ban

Ha Snowflake-t használ az Azure-ban, az alábbi lépések végrehajtásával Iceberg-táblákat írhat a OneLake-be:

  1. Győződjön meg arról, hogy a Fabric-kapacitás ugyanabban az Azure-helyen található, mint a Snowflake-példány.

    Azonosítsa a Fabric lakehouse-hoz társított Fabric-kapacitás helyét. Nyissa meg a lakehouse-t tartalmazó Fabric-munkaterület beállításait.

    Képernyőkép a Fabric kapacitásrégióról.

    Az Azure-fiók felületének Snowflake bal alsó sarkában ellenőrizze a Snowflake-fiók Azure-régióját.

    Képernyőkép a Snowflake-fiók régiójáról.

    Ha ezek a régiók eltérőek, akkor a Snowflake-fiókéval azonos régióban más Hálókapacitást kell használnia.

  2. Nyissa meg a tóház Fájlok területének menüjét, válassza a Tulajdonságok lehetőséget, és másolja ki a mappa URL-címét (a HTTPS-elérési utat).

    Képernyőkép a Tulajdonságok menüelemről.

  3. Azonosítsa a Fabric-bérlő azonosítóját. Válassza ki a felhasználói profilját a Háló felhasználói felületének jobb felső sarkában, és mutasson a bérlő neve melletti információs buborékra. Másolja ki a bérlőazonosítót.

    Képernyőkép a bérlőazonosítóról.

  4. Állítsa be a EXTERNAL VOLUME a Snowflake-ban a lakehouse Files mappájának elérési útját használva. A Snowflake külső kötetek beállításáról itt talál további információt.

    Note

    A Snowflake megköveteli, hogy az URL-séma azure:// legyen, ezért mindenképpen változtassa meg az elérési utat https://-ről azure://-re.

    CREATE OR REPLACE EXTERNAL VOLUME onelake_write_exvol
    STORAGE_LOCATIONS =
    (
        (
            NAME = 'onelake_write_exvol'
            STORAGE_PROVIDER = 'AZURE'
            STORAGE_BASE_URL = 'azure://<path_to_lakehouse>/Files/icebergtables'
            AZURE_TENANT_ID = '<Tenant_ID>'
        )
    );
    

    Ebben a mintában a külső kötet használatával létrehozott táblákat a Fabric lakehouse tárolja a Files/icebergtables mappában.

  5. A külső kötet létrehozása után futtassa a következő parancsot annak az alkalmazásnak a hozzájárulási URL-címének és nevének lekéréséhez, amelyet a Snowflake használ a OneLake-be való íráshoz. Ezt az alkalmazást a Snowflake-fiók bármely más külső kötete használja.

    DESC EXTERNAL VOLUME onelake_write_exvol;
    

    A parancs kimenete a tulajdonságokat és AZURE_CONSENT_URL a AZURE_MULTI_TENANT_APP_NAME tulajdonságokat adja vissza. Jegyezze fel mindkét értéket. Az Azure több-bérlős alkalmazás neve így <name>_<number>néz ki, de csak a <name> részt kell rögzítenie.

  6. Ha korábban még nem tette meg, nyissa meg az előző lépés hozzájárulási URL-címét egy új böngészőlapon. Ha folytatni szeretné a műveletet, ha a rendszer kéri, adja meg a szükséges alkalmazásengedélyeket. Előfordulhat, hogy a rendszer átirányítja a Snowflake fő webhelyére.

  7. Nyissa meg a munkaterületet a Hálóban, és válassza a Hozzáférés kezelése, majd a Személyek vagy csoportok hozzáadása lehetőséget. Adja meg a Snowflake külső kötete által használt alkalmazásnak a munkaterületen lévő tóházakba való adatíráshoz szükséges engedélyeket. Javasoljuk, hogy adja meg a közreműködői szerepkört.

  8. A Snowflake-ben az új külső kötet használatával hozzon létre egy Iceberg-táblázatot.

    CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.Inventory (
        InventoryId int,
        ItemName STRING
    )
    EXTERNAL_VOLUME = 'onelake_write_exvol'
    CATALOG = 'SNOWFLAKE'
    BASE_LOCATION = 'Inventory/';
    

    Az utasítás futtatása után a külső kötetben definiált mappa elérési útján létre lett hozva az Inventory nevű új Iceberg-táblamappa.

  9. Adjon hozzá néhány adatot a Iceberg-táblához.

    INSERT INTO MYDATABASE.PUBLIC.Inventory
    VALUES
    (123456,'Amatriciana');
    
  10. Végül, ugyanazon tóház Táblák területén létrehozhat egy OneLake-parancsikont a Iceberg-táblához. Ezzel a parancsikonlal a Iceberg-tábla Delta Lake-táblaként jelenik meg a Fabric-számítási feladatokban való felhasználáshoz.

Virtuális Iceberg-táblázat olvasása a OneLake-ből a Snowflake használatával az Azure-ban

Ha az Azure-beli Snowflake használatával szeretne olvasni egy Delta Lake-táblán alapuló virtuális Iceberg-táblát a Fabricben, kövesse az alábbi lépéseket.

  1. Kövesse az útmutatót annak ellenőrzéséhez, hogy a Delta Lake-tábla sikeresen iceberggé lett-e konvertálva, és jegyezze fel a táblázatot tartalmazó adatelem elérési útját, valamint a tábla legújabb *.metadata.json fájlját.

  2. Azonosítsa a Fabric-bérlő azonosítóját. Válassza ki a felhasználói profilját a Háló felhasználói felületének jobb felső sarkában, és mutasson a bérlő neve melletti információs buborékra. Másolja ki a bérlőazonosítót.

    Képernyőkép a bérlőazonosítóról.

  3. A Snowflake-ben állítsa be EXTERNAL VOLUME a táblázatot tartalmazó adatelem Tables mappájának elérési útja szerint. A Snowflake külső kötetek beállításáról itt talál további információt.

    CREATE OR REPLACE EXTERNAL VOLUME onelake_read_exvol
    STORAGE_LOCATIONS =
    (
        (
            NAME = 'onelake_read_exvol'
            STORAGE_PROVIDER = 'AZURE'
            STORAGE_BASE_URL = 'azure://<path_to_data_item>/Tables/'
            AZURE_TENANT_ID = '<Tenant_ID>'
        )
    )
    ALLOW_WRITES = false;
    

    Note

    A hópehelyhez az URL-séma szükséges azure://, ezért mindenképpen váltson https://azure://rá.

    Cserélje le <path_to_data_item> az adatelem elérési útját, például https://onelake.dfs.fabric.microsoft.com/83896315-c5ba-4777-8d1c-e4ab3a7016bc/a95f62fa-2826-49f8-b561-a163ba537828.

  4. A külső kötet létrehozása után futtassa a következő parancsot annak az alkalmazásnak a hozzájárulási URL-címének és nevének lekéréséhez, amelyet a Snowflake használ a OneLake-be való íráshoz. Ezt az alkalmazást a Snowflake-fiók bármely más külső kötete használja.

    DESC EXTERNAL VOLUME onelake_read_exvol;
    

    A parancs kimenete a tulajdonságokat és AZURE_CONSENT_URL a AZURE_MULTI_TENANT_APP_NAME tulajdonságokat adja vissza. Jegyezze fel mindkét értéket. Az Azure több-bérlős alkalmazás neve így <name>_<number>néz ki, de csak a <name> részt kell rögzítenie.

  5. Ha korábban még nem tette meg, nyissa meg az előző lépés hozzájárulási URL-címét egy új böngészőlapon. Ha folytatni szeretné a műveletet, ha a rendszer kéri, adja meg a szükséges alkalmazásengedélyeket. Előfordulhat, hogy a rendszer átirányítja a Snowflake fő webhelyére.

  6. Nyissa meg a munkaterületet a Hálóban, és válassza a Hozzáférés kezelése, majd a Személyek vagy csoportok hozzáadása lehetőséget. Adja meg a Snowflake külső kötete által használt alkalmazásnak a munkaterület adatelemeiből való adatolvasáshoz szükséges engedélyeket.

    Tip

    Ehelyett dönthet úgy, hogy engedélyeket ad meg az adatelem szintjén, ha szeretné. További információ a OneLake-adathozzáférésről.

  7. Ha korábban még nem tette meg, hozza létre az CATALOG INTEGRATION objektumot a Snowflake-ben. A Snowflake erre azért van szükség, hogy meglévő Iceberg-táblákra hivatkozzon a tárolóban.

    CREATE CATALOG INTEGRATION onelake_catalog_integration
    CATALOG_SOURCE = OBJECT_STORE
    TABLE_FORMAT = ICEBERG
    ENABLED = TRUE;
    
  8. A Snowflake-ben hozzon létre egy Iceberg-táblát, amely a OneLake virtualizált Iceberg-táblájának legújabb metaadatfájljához hivatkozik.

    CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.<TABLE_NAME>
    EXTERNAL_VOLUME = 'onelake_read_exvol'
    CATALOG = onelake_catalog_integration
    METADATA_FILE_PATH = '<metadata_file_path>';
    

    Note

    Cserélje le a(z) <TABLE_NAME> helyére a táblázat nevét, és a(z) <metadata_file_path> helyére az Iceberg-tábla metaadatfájljának elérési útvonalát, például dbo/MyTable/metadata/321.metadata.json.

    Az utasítás futtatása után már rendelkezik egy hivatkozással a virtualizált Iceberg-táblára, amelyet a Snowflake használatával kérdezhet le.

  9. Az alábbi utasítás futtatásával kérdezheti le a virtualizált Iceberg-táblát.

    SELECT TOP 10 * FROM MYDATABASE.PUBLIC.<TABLE_NAME>;
    

Troubleshooting

Tekintse meg a OneLake táblaformátum virtualizálásának és a Delta Lake és az Apache Iceberg táblázatformátumok közötti konvertálásának dokumentációjának hibaelhárítási és korlátozásait és szempontjait .