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


CREATE FLOW (csővezetékek)

A CREATE FLOW utasítással folyamatokat vagy visszatöltéseket hozhat létre egy csővezeték tábláihoz.

Szemantika

CREATE FLOW flow_name [COMMENT comment] AS
{
  AUTO CDC INTO target_table create_auto_cdc_flow_spec |
  INSERT INTO [ONCE] target_table BY NAME query
}

Paraméterek

  • flow_name

    A létrehozandó folyamat neve.

  • MEGJEGYZÉS

    A folyamat opcionális leírása.

  • AUTOMATIKUS CDC-BE

    Egy AUTO CDC ... INTO utasítás, amely meghatározza a folyamatot egy create_auto_cdc_flow_spec. Tartalmaznia kell vagy egy AUTO CDC ... INTO utasítást, vagy egy INSERT INTO utasítást. Akkor használható AUTO CDC ... INTO , ha a forrás lekérdezés változásadat-szemantikát használ.

    További információ: AUTO CDC INTO (adattovábbítási csatornák).

  • target_table

    A frissíteni kívánt táblázat. Ennek streamelésre alkalmas táblának kell lennie.

  • INSERT BE

    A céltáblába való beszúrásra szánt táblalekérdezést definiál. Ha a ONCE beállítás nincs megadva, a lekérdezésnek streamelési lekérdezésnek kell lennie. A STREAM kulcsszóval stream-szemantikát használhat a forrásból való olvasáshoz. Ha az olvasás egy meglévő rekord módosítását vagy törlését tapasztalja, hibaüzenet jelenik meg. A legbiztonságosabb, ha statikus vagy csak hozzáfűző forrásokból olvas. A módosítási véglegesítéseket tartalmazó adatok betöltéséhez használhatja a Pythont és a SkipChangeCommits hibák kezelésére szolgáló lehetőséget.

    INSERT INTO kölcsönösen kizárja a AUTO CDC ... INTO. Akkor használható AUTO CDC ... INTO , ha a forrásadatok módosítási adatrögzítési (CDC) funkciót tartalmaznak. A INSERT INTO elemet akkor használja, ha a forrásban nem szerepel.

    További információért az adatfolyamokról, tekintse meg a Folyamatokkal történő adatátalakítást.

  • EGYSZER

    Igény szerint a folyamatot egyszeri folyamatként, például visszatöltésként definiálhatja. A ONCE használata kétféleképpen változtatja meg a folyamatot:

    • A forrás query vagy create_auto_cdc_flow_spec nem egy folyamatos tábla.
    • A folyamat alapértelmezés szerint egyszer fut. Ha a folyamat teljes frissítéssel frissül, a ONCE folyamat újrafut az adatok újbóli létrehozásához.

Példák

-- EXAMPLE 1:
-- Create a streaming table, and add two flows that append data to it:
CREATE OR REFRESH STREAMING TABLE users;

-- first flow into target_table:
CREATE FLOW users_flow AS
INSERT INTO users
SELECT * FROM stream(raw_data.users);

-- second flow into target_table:
CREATE FLOW backfill_users AS
INSERT INTO ONCE users
SELECT * FROM user_backfill_table;

-- EXAMPLE 2:
-- Create a streaming table, and add a flow that applies CDC changes to it:
CREATE OR REFRESH STREAMING TABLE admins_cdc_target_table;

-- first flow into target_table:
CREATE FLOW admin_cdc_flow AS
AUTO CDC INTO admins_cdc_target_table
FROM stream(cdc_data.admins)
KEYS (userId)
APPLY AS DELETE WHEN
  operation = "DELETE"
SEQUENCE BY sequenceNum
COLUMNS * EXCEPT (operation, sequenceNum)
STORED AS SCD TYPE 2;