Sdílet prostřednictvím


Načtení dat pomocí streamování tables v Databricks SQL

Databricks doporučuje používat streaming tables k příjmu dat pomocí Databricks SQL. streamovací table je table zaregistrovaná v Unity Catalog s dodatečnou podporou streamování nebo přírůstkového zpracování dat. Potrubí Delta Live Tables se automaticky vytvoří pro každý streaming table. Streamovací tables můžete použít pro přírůstkové načítání dat z Kafka a cloudového úložiště objektů.

Tento článek ukazuje použití streamingu tables k načtení dat z cloudového úložiště objektů, které je nakonfigurováno jako svazek Unity Catalog (doporučeno) nebo z externího umístění.

Poznámka:

Informace o tom, jak používat Delta Lake tables jako zdroje streamování a jímky, najdete v tématu Delta table čtení a zápisy streamování.

Důležité

Streamy tables vytvořené v Databricks SQL jsou zajišťovány bezserverovým kanálem Delta Live Tables. Aby se tato funkce používala, musí váš pracovní prostor podporovat bezserverové kanály.

Než začnete

Než začnete, musíte splnit následující požadavky.

Požadavky na pracovní prostor:

Požadavky na výpočetní prostředky:

Musíte použít jednu z následujících možností:

  • SQL Warehouse, který používá Current kanál.

  • Výpočty s režimem sdíleného přístupu v Databricks Runtime 13.3 LTS nebo vyšší

  • Výpočty s režimem přístupu jednoho uživatele v Databricks Runtime 15.4 LTS nebo vyšší.

    V Databricks Runtime 15.3 a starších verzích nemůžete použít výpočetní prostředky pro jednoho uživatele k dotazování streamování tables, které vlastní jiní uživatelé. Jednouživatelský výpočet můžete použít na Databricks Runtime verze 15.3 a nižší pouze v případě, že vlastníte streamovací table. Tvůrce table je jeho vlastníkem.

    Databricks Runtime 15.4 LTS a novější podporuje operace na Delta Live Tables– generované tables na výpočetních prostředcích jediného uživatele a to bez ohledu na vlastnictví table. Pokud chcete využít filtrování dat poskytované ve službě Databricks Runtime 15.4 LTS a novější, musíte ověřit, že váš pracovní prostor je povolený pro bezserverové výpočetní, protože funkce filtrování dat, které podporují funkci delta live Tables-generated tables běží na bezserverovém výpočetním prostředí. Za výpočetní prostředky bez serveru se můžou účtovat poplatky, když ke spouštění operací filtrování dat použijete výpočetní prostředky s jedním uživatelem. Podívejte se na podrobné řízení přístupu u výpočetních prostředků jednoho uživatele.

Požadavky na oprávnění:

Další požadavky:

  • Cesta ke zdrojovým datům.

    Příklad cesty svazku: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

    Příklad cesty k externímu umístění: abfss://myContainer@myStorageAccount.dfs.core.windows.net/analysis

    Poznámka:

    Tento článek předpokládá, že data, která chcete načíst, jsou v cloudovém úložišti, které odpovídá svazku Unity Catalog nebo externímu umístění, ke kterému máte přístup.

Zjišťování a náhled zdrojových dat

  1. Na bočním panelu pracovního prostoru klikněte na Dotazy a potom klikněte na Vytvořit dotaz.

  2. V editoru dotazů select SQL Warehouse, který používá kanál Current z rozevíracího list.

  3. Do editoru vložte následující text, nahraďte values v úhlových závorkách (<>) informacemi, které identifikují vaše zdrojová data, a pak klikněte na Spustit.

    Poznámka:

    Při spuštění funkce s hodnotami read_filestable můžete narazit na chyby schema při inferenci, pokud výchozí nastavení funkce nedokáže zpracovat vaše data. Můžete například potřebovat nakonfigurovat víceřádkový režim pro soubory CSV nebo JSON s více řádky. list možností analyzátoru najdete v části read_files tablefunkce s hodnotami.

    /* 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
    

Načtení dat do streamu table

Pokud chcete vytvořit streamování table z dat v cloudovém úložišti objektů, vložte následující do editoru a klikněte na Spustit.

/* 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>')

Set kanálu modulu runtime

Streamované tables vytvořené pomocí SQL Warehouse se automaticky aktualizují pomocí kanálu Delta Live Tables. Kanály Delta Live Tables ve výchozím nastavení používají modul runtime v kanálu current. Podívejte se na Delta Live Tables poznámky k vydání a proces upgradu, abyste se seznámili s procesem vydání.

Databricks doporučuje používat current kanál pro produkční úlohy. Nové funkce jsou poprvé vydány v preview kanálu. Můžete set kanál Delta Live Tables do testovací verze a otestovat nové funkce tak, že zadáte preview jako vlastnost table. Tuto vlastnost můžete zadat při vytváření table nebo po vytvoření table pomocí příkazu ALTER.

Následující příklad kódu ukazuje, jak set kanálu zobrazit náhled v příkazu CREATE:

CREATE OR REPLACE MATERIALIZED VIEW foo.default.bar
TBLPROPERTIES ('pipelines.channel' = 'preview') as
SELECT
  *
FROM
  range(5)

Refresh streamované table pomocí kanálu DLT

Tato část popisuje schémata aktualizace streamovaného table s nejnovějšími daty, která jsou k dispozici ze zdrojů definovaných v dotazu.

Při CREATE nebo REFRESH streamované tablese procesy update pomocí bezserverového potrubí Delta Live Tables. Každý streamovací table, který definujete, má přidružené potrubí Delta Live Tables.

Po spuštění příkazu REFRESH se vrátí odkaz na pipeline DLT. Pomocí odkazu na kanál DLT můžete zkontrolovat stav refresh.

Poznámka:

Pouze vlastník table může refresh streamované table k dosažení nejnovějších dat get. Uživatel, který vytvoří table, je vlastníkem a vlastníka nelze změnit. Možná budete muset refresh své streamování table před použitím časových dotazů .

Podívejte se na Co je Delta LiveTables?.

Ingestovat pouze nová data

Ve výchozím nastavení funkce read_files čte všechna existující data ve zdrojovém adresáři při vytvoření table a pak zpracovává nově přicházející záznamy při každém refresh.

Pokud se chcete vyhnout ingestování dat, která již existují ve zdrojovém adresáři při vytváření table, set možnost includeExistingFilesfalse. To znamená, že se po vytvoření table zpracují jenom data, která dorazí do adresáře. Příklad:

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)

Úplně streamované refreshtable

Úplné aktualizace znovu zpracovávají všechna data dostupná ve zdroji s nejnovější definicí. Nedoporučuje se volat úplné aktualizace zdrojů, které nezachovají celou historii dat nebo mají krátká období uchovávání, například Kafka, protože úplná refresh zkracuje stávající data. Pokud už data nejsou ve zdroji dostupná, možná nebudete moct obnovit stará data.

Příklad:

REFRESH STREAMING TABLE my_bronze_table FULL

Naplánovat streamování table pro automatické refresh

Chcete-li nakonfigurovat streamovací table tak, aby bylo automaticky refresh podle definovaného plánu, vložte následující text do editoru dotazů a klikněte na Spustit:

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

Například pro dotazy na plán refresh viz ALTER STREAMING TABLE.

Sledujte stav refresh

Stav streamovaného můžete zobrazit zobrazením potrubí, které spravuje streamování v uživatelském rozhraní Delta Live nebo zobrazením informací o , které byly vráceny příkazem pro streamování .

DESCRIBE EXTENDED <table-name>

Příjem streamovaných dat ze systému Kafka

Příklad příjmu dat streamování ze systému Kafka najdete v tématu read_kafka.

Grant uživatelé mají přístup k streamovacímu table

Pokud chcete grant uživatelům oprávnění SELECT pro streamované table, aby se na něj mohli dotazovat, vložte do editoru dotazů následující příkaz a potom klikněte na Spustit:

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

Další informace o udělování oprávnění k zabezpečitelným objektům Unity Catalog naleznete v tématu Unity Catalog oprávnění a zabezpečitelné objekty.

Monitorování spuštění pomocí historie dotazů

Na stránce historie dotazů můžete získat přístup k podrobnostem dotazu a profilům dotazů, které vám pomohou identifikovat dotazy s nízkým výkonem a úzká místa v kanálu Delta Live Tables používaném k provádění streamovaných table aktualizací. Přehled o druhu informací dostupných v historii dotazů a profilech dotazů najdete v tématu Historie dotazů a profil dotazu.

Důležité

Tato funkce je ve verzi Public Preview. Správci pracovního prostoru můžou tuto funkci povolit na stránce Previews . Viz Správa azure Databricks Preview.

Všechny příkazy související se streamováním tables se zobrazí v historii dotazů. Pomocí rozevíracího filtru Prohlášení můžete použít select jakýkoli příkaz a zkontrolovat související dotazy. Za všemi příkazy CREATE následuje příkaz REFRESH, který se spouští asynchronně v kanálu Delta Live Tables. Příkazy REFRESH obvykle zahrnují podrobné plány dotazů, které poskytují přehled o optimalizaci výkonu.

Pokud chcete získat přístup k REFRESH příkazům v uživatelském rozhraní historie dotazů, postupujte následovně:

  1. Kliknutím Ikona historie na levý boční panel otevřete uživatelské rozhraní historie dotazů.
  2. Select zaškrtávací políčko REFRESH z rozevíracího filtru Příkaz.
  3. Kliknutím na název příkazu dotazu zobrazíte souhrnné podrobnosti, jako je doba trvání dotazu a agregované metriky.
  4. Kliknutím na Zobrazit profil dotazu otevřete profil dotazu. Podrobnosti o navigaci v profilu dotazu najdete v části Profil dotazu.
  5. Volitelně můžete pomocí odkazů v části Zdroj dotazů otevřít související dotaz nebo kanál.

K podrobnostem dotazu můžete přistupovat také pomocí odkazů v editoru SQL nebo z poznámkového bloku připojeného k SQL Warehouse.

Poznámka:

Vaše streamování musí být nakonfigurováno tak, aby běželo pomocí kanálu Preview . Viz Setkanálu modulu runtime .

Další materiály