Adatok betöltése streamelő táblák használatával a Databricks SQL-ben

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el. A hozzáférésre való regisztrációhoz töltse ki ezt az űrlapot.

A Databricks azt javasolja, hogy streamelési táblák használatával betöltse az adatokat a Databricks SQL használatával. A streamelési tábla egy Unity Catalog által felügyelt tábla, amely további támogatást nyújt a streameléshez vagy a növekményes adatfeldolgozáshoz. A rendszer automatikusan létrehoz egy DLT-folyamatot az egyes streamelési táblákhoz. Streamtáblák használatával növekményes adatbetöltést végezhet a Kafkából és a felhőobjektum-tárolóból.

Ez a cikk bemutatja, hogy streamelési táblák használatával tölthetők be adatok a Unity Catalog-kötetként (ajánlott) vagy külső helyként konfigurált felhőobjektum-tárolóból.

Feljegyzés

Ha meg szeretné tudni, hogyan használhatja a Delta Lake-táblákat streamelő forrásként és fogadóként, olvassa el a Delta táblastreamelési olvasásait és írásait.

Előkészületek

Mielőtt hozzákezdene, győződjön meg arról, hogy rendelkezik az alábbiakval:

  • Egy Azure Databricks-fiók kiszolgáló nélküli engedélyezve. További információ: Kiszolgáló nélküli SQL-tárolók engedélyezése.

  • Egy olyan munkaterület, amelyen engedélyezve van a Unity Catalog. További információ: Unity Catalog beállítása és kezelése.

  • A csatornát Current használó SQL-raktár.

  • A Delta Live Tables-folyamat által létrehozott streamtáblák lekérdezéséhez a Databricks Runtime 13.3 LTS és újabb verziók vagy SQL-raktárak használatával közös számítást kell használnia. A Unity Catalog-kompatibilis folyamatban létrehozott streamtáblák nem kérdezhetők le hozzárendelt vagy nem elkülönített fürtökről.

  • A READ FILES Unity-katalógus külső helyének jogosultsága. További információ: Külső hely létrehozása a felhőbeli tároló Azure Databrickshez való csatlakoztatásához.

  • A USE CATALOG katalógus azon jogosultsága, amelyben a streamelési táblát létrehozza.

  • Azon USE SCHEMA séma jogosultsága, amelyben a streamelési táblázatot hozza létre.

  • Azon CREATE TABLE séma jogosultsága, amelyben a streamelési táblázatot hozza létre.

  • A forrásadatok elérési útja.

    Példa kötetútvonalra: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

    Példa külső hely elérési útjára: abfss://myContainer@myStorageAccount.dfs.core.windows.net/analysis

    Feljegyzés

    Ez a cikk feltételezi, hogy a betölteni kívánt adatok egy felhőbeli tárolóhelyen találhatók, amely egy Unity Catalog-kötetnek vagy egy olyan külső helynek felel meg, amelyhez hozzáféréssel rendelkezik.

Forrásadatok felderítése és előnézete

  1. A munkaterület oldalsávjában kattintson a Lekérdezések elemre, majd a Lekérdezés létrehozása parancsra.

  2. A lekérdezésszerkesztőben válasszon ki egy sql warehouse-t, amely a Current csatornát használja a legördülő listából.

  3. Illessze be a következőt a szerkesztőbe, és helyettesítse az értékeket szögletes zárójelekben (<>) a forrásadatokat azonosító információkhoz, majd kattintson a Futtatás gombra.

    Feljegyzés

    Sémakövetkeztetési hibákat tapasztalhat a read_files táblaértékelő függvény futtatásakor, ha a függvény alapértelmezett értékei nem tudják elemezni az adatokat. Előfordulhat például, hogy többsoros módot kell konfigurálnia többsoros CSV- vagy JSON-fájlokhoz. Az elemzési beállítások listájáért lásd read_files táblaértékű függvényt.

    /* Discover your data in a volume */
    LIST "/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>"
    
    /* Preview your data in a volume */
    SELECT * FROM read_files("/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>") LIMIT 10
    
    /* Discover your data in an external location */
    LIST "abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>"
    
    /* Preview your data */
    SELECT * FROM read_files("abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>") LIMIT 10
    

Adatok betöltése streamelési táblába

Ha streamelési táblát szeretne létrehozni a felhőobjektum-tárolóban lévő adatokból, illessze be a következőt a lekérdezésszerkesztőbe, majd kattintson a Futtatás gombra:

/* Load data from a volume */
CREATE OR REFRESH STREAMING TABLE <table-name> AS
SELECT * FROM STREAM read_files('/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>')

/* Load data from an external location */
CREATE OR REFRESH STREAMING TABLE <table-name> AS
SELECT * FROM STREAM read_files('abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>')

Streamelési tábla frissítése DLT-folyamattal

Ez a szakasz a lekérdezésben meghatározott forrásokból elérhető legfrissebb adatokkal rendelkező streamelési táblák frissítésének mintáit ismerteti.

CREATE a streamelési táblák műveletei egy Databricks SQL-raktárt használnak az adatok kezdeti létrehozásához és a streamelési táblába való betöltéséhez. REFRESH a streamelési táblákhoz a Delta Live Tables (DLT) használható. A rendszer automatikusan létrehoz egy DLT-folyamatot az egyes streamelési táblákhoz. Egy streamelési tábla frissítésekor a DLT-folyamat frissítése indul el a frissítés feldolgozásához.

A parancs futtatása után a REFRESH rendszer visszaadja a DLT-folyamat hivatkozását. A DLT-folyamat hivatkozásával ellenőrizheti a frissítés állapotát.

Feljegyzés

Csak a tábla tulajdonosa frissíthet streamelési táblázatot a legújabb adatok lekéréséhez. A táblát létrehozó felhasználó a tulajdonos, és a tulajdonos nem módosítható.

Lásd : Mi az a Delta Live Tables?.

Csak új adatok betöltése

Alapértelmezés szerint a függvény beolvassa read_files a forráskönyvtárban lévő összes meglévő adatot a tábla létrehozásakor, majd minden frissítéssel feldolgozza az újonnan érkező rekordokat.

Ha szeretné elkerülni, hogy a tábla létrehozásakor a forráskönyvtárban már létező adatok legyenek betöltve, állítsa a beállítást a includeExistingFiles következőre false: . Ez azt jelenti, hogy csak azok az adatok érkeznek a könyvtárba, amelyek a tábla létrehozása után érkeznek. Példa:

CREATE OR REFRESH STREAMING TABLE my_bronze_table
AS SELECT *
FROM STREAM read_files(
  'abfss://myContainer@myStorageAccount.dfs.core.windows.net/analysis/*/*/*.json',
  includeExistingFiles => false)

Streamelési tábla teljes frissítése

A teljes frissítések újra feldolgozzák a forrásban elérhető összes adatot a legújabb definícióval. Nem ajánlott teljes frissítéseket meghívni olyan forrásokon, amelyek nem őrzik meg az adatok teljes előzményeit, vagy rövid megőrzési időszakuk van (például Kafka), mert a teljes frissítés csonkolja a meglévő adatokat. Előfordulhat, hogy nem tudja helyreállítani a régi adatokat, ha az adatok már nem érhetők el a forrásban.

Példa:

REFRESH STREAMING TABLE my_bronze_table FULL

Streamelési tábla ütemezése automatikus frissítéshez

Ha egy streamelési táblát úgy szeretne konfigurálni, hogy egy megadott ütemezés alapján automatikusan frissüljön, illessze be az alábbiakat a lekérdezésszerkesztőbe, majd kattintson a Futtatás gombra:

ALTER STREAMING TABLE
[[<catalog>.]<database>.]<name>
ADD [SCHEDULE [REFRESH]
        CRON '<cron-string>'
                [ AT TIME ZONE '<timezone-id>' ]];

Például a frissítésütemezési lekérdezéseket lásd: ALTER STREAMING TABLE.

Frissítés állapotának nyomon követése

A streamelési tábla frissítésének állapotát megtekintheti a streamelési táblát kezelő folyamat megtekintésével a Delta Live Tables felhasználói felületén, vagy a streamelési tábla parancsa által DESCRIBE EXTENDED visszaadott frissítési információk megtekintésével.

DESCRIBE EXTENDED <table-name>

Streambetöltés a Kafkából

A Kafkából történő streambetöltésre példa: read_kafka.

Hozzáférés biztosítása a felhasználóknak egy streamelési táblához

Ha meg szeretné adni a felhasználóknak a SELECT streamelési tábla jogosultságát, hogy lekérdezhessek, illessze be a következőt a lekérdezésszerkesztőbe, majd kattintson a Futtatás gombra:

GRANT SELECT ON TABLE <catalog>.<schema>.<table> TO <user-or-group>

A Unity Catalog biztonságos objektumaihoz való jogosultságok megadásáról további információt a Unity Catalog-jogosultságok és a biztonságos objektumok című témakörben talál.

Korlátozások

  • A Databricks SQL-streamtáblák nem támogatottak az USA déli középső régiójában és az USA 2. nyugati régiójában.

További erőforrások