串流資料 | Qlik Cloud 說明
跳到主要內容 跳至補充內容

串流資料

上線程序會從來源傳輸資料並將其儲存在 Iceberg 表格中。來自串流資料來源的變更會以近乎即時的方式持續套用至儲存表格。

上線資料

資料會在管道專案內上線,且資料集會儲存在專案設定中定義的 S3 位置。

  1. 在您的專案中,按一下 建立,然後按一下 上線資料

  2. 為上線新增 工作名稱 和選用的 描述

    按一下 下一步

  3. 選取來源連線。

    您可以選取現有的串流來源連線,或建立與來源的新連線。

    如需詳細資訊,請參閱 連接資料串流

    按一下 下一步 並遵循下方適用於您資料來源的指示。

選取資料

Apache Kafka

清單會顯示來源連線中定義的叢集內可用的 Kafka 主題。

選取主題時,您可以選取特定的資料集。您也可以使用選取規則來包含或排除資料集群組:

  • 使用 % 作為萬用字元,以定義資料集的選取標準。

如果使用選取規則選取主題,您可以選擇要將所有資料集載入同一個目標表格,還是為每個來源主題建立個別的目標表格:

  • 依預設,目標 Iceberg 表格名稱衍生自主題名稱,並格式化以符合命名慣例,例如小寫、移除空格、以底線取代破折號。在 定義目標資料集名稱 中,您可以編輯目標表格的名稱

  • 當使用選取規則將多個主題載入單一表格時,您必須提供目標名稱。

  • 當使用選取規則且資料載入個別表格 (每個主題一個資料集) 時,預設目標名稱為主題名稱。在此階段,您無法在精靈中編輯名稱,但稍後可以在登陸工作中執行此操作。

  • 如果設定了規則以選取要擷取的主題,若勾選了登陸工作設定中結構描述演進下的 新主題  > 新增至目標 選項,任何符合規則標準的新主題也會登陸。

選取一或多個資料集,或使用選取規則,然後按一下 新增。按一下 下一步

Amazon Kinesis

清單會顯示來源連線中定義的可用 Kinesis 串流。

選取一或多個資料集,然後按一下 新增。您可以在 選取的串流 下看到已新增的資料集。按一下 下一步

Amazon S3

目錄瀏覽器會顯示位於來源連線 S3 值區中的所有目錄清單。 

資訊備註使用資料模式來選取目錄可改善效能。
  • 選取登陸資料時要包含的目錄:

    • 針對每個目錄,在 新增路徑 中,輸入路徑和檔案名稱模式:

      • 使用 * 作為萬用字元以符合任何字元。

      • 若要輸入日期模式,請使用 <yyyy> 作為四位數年份預留位置、<MM> 作為兩位數月份預留位置、<dd> 作為兩位數日期預留位置,以及 <HH> 作為兩位數小時預留位置。例如:

        • MyDir3/<yyyy>_<MM>_<dd>_<HH>_orders.csv

        • MyDir3/<yyyy>/<MM>/<dd>/<HH>_orders.csv

  • 按一下 預覽 以開啟 預覽資料 對話方塊。將會顯示包含和已排除檔案的清單。

  • 按一下 驗證 以檢查路徑和檔案名稱模式是否正確且可運作。

  • 定義目標資料集名稱 中,提供名稱以將主題對應至目標 Iceberg 表格。按一下 下一步

選取內容類型

選擇來源事件內容類型。

  • 選擇資料事件的類型 中選取您要擷取的事件類型。

  • 如需詳細資訊,請參閱 連接資料串流

    選取的內容類型適用於所有主題、資料集或資料事件。您必須為要擷取的每個內容類型建立新工作。

  • 展開 驗證事件已正確載入 以確認可以剖析資料。最好在此階段確保資料正確,否則您需要重新建立管道並再次載入資料。使用 選取資料集 來檢查特定資料集,並檢查任何可能影響資料載入的警告。按一下任何 struct 欄位旁邊的眼睛圖示以檢視資料。

  • 按一下 下一步

資訊備註如果未偵測到資料集的事件,則會在登陸中顯示訊息。當有事件要讀取時,您將需要執行工作,且欄位將會自動新增。

設定擷取屬性

設定您的管道設定:

  • 讀取資料自

    • 從最早的事件開始:擷取所有歷史資料。

    • 從現在開始:擷取從管道啟動時到達的新資料。

  • 欄位取消巢狀

    • 保留巢狀欄位:不套用任何轉換。

    • 取消巢狀至個別欄位:資料會分割成個別欄位。

  • 新資料集的載入設定

    • 僅附加:通常是事件資料的最佳選項,因為它通常生命週期短且不會更新,例如 訂單

    • 套用變更:這最適合隨時間更新的資料,例如 客戶。根據索引鍵欄位更新現有記錄並插入新記錄。稍後在定義工作時,您將需要指定索引鍵欄位。

  • 目標表格分割區

    目標表格分割區選項適用於管道中的所有表格。您稍後可以在表格層級覆寫此設定以定義自訂分割區。

    資訊備註只有在 載入設定 中選取 僅附加 時,才能使用此選項。
    • 無分割區:建立表格時不進行任何分割。

    • 依事件擷取日期分割:表格會依擷取事件的日期進行分割。

      資訊備註當此選項與 hdr__from_timestamp 標頭欄位選項一起選取時,hdr__from_timestamp 將用作預設分割區欄位。如需有關將 hdr__from_timestamp 標頭欄位新增至標準檢視的資訊,請參閱 表格定義
  • 資料變更處理

    資訊備註只有在 載入設定 中選取 套用變更 時,才能使用此選項。
    • 包含軟刪除:輸入運算式以定義要標記為刪除的記錄。

    • 建立歷史資料存放區 (類型 2):這將保留已變更記錄的先前版本。

  • 按一下 下一步

摘要

摘要畫面提供管道的視覺化顯示:

  • 選擇性地,對於串流登陸和串流轉換工作,您可以按一下 編輯名稱和描述 以提供新值。

  • 選取您希望在 建立管道之後 發生的選項。

  • 設定所有設定後,按一下 建立 以建立串流管道。

  • 顯示專案時,您可以準備並執行每個工作以開始擷取資料。

資料類型對應

初始來源結構描述是根據建立管道專案時在 PREPARE 階段之前取得的資料樣本,且結構描述演進會在讀取時處理。不支援 STRUCT 和 ARRAY 的鏡像工作和其他下游工作會使用 JSON 類型。可以使用 SQL 剖析資料。

下列資料類型對應適用於所有支援的資料來源,但會根據來源檔案類型而有所不同,且應注意下列事項:

  • 資料類型是從正在上線的資料樣本推斷而來。例如,如果欄位在樣本中僅包含整數值,則在串流登陸和轉換工作中會將其建立為 INT8。如果後續資料包含雙精確度小數值,則登陸檔案會包含這些值;但是,在串流轉換工作中,如果 變更欄位資料類型 設定設為 忽略,則欄位會保持為 INT8,且小數值會被截斷。為避免意外截斷,請確保樣本資料在上線前包含預期值的完整範圍,或在早期階段將 變更欄位資料類型 設定為 停止工作,並視需要調整資料類型。

  • 如果將欄位新增至來源中的 struct,則一律會將其新增至登陸目標。對於串流轉換,會根據在 串流轉換工作設定 > 結構描述演進 > 將欄位新增至 struct (套用至目標忽略停止工作) 中選擇的選項來套用行為。

  • 如果在特定記錄中遺失欄位,或陣列為空,則會將其視為 null。

  • 如果資料集由陣列壓平合併,且到達的記錄中該陣列為空或 null,系統會建立一個資料列,且壓平合併的欄位為 null。它不會自動被排除。如果您想要排除這些資料列,請手動新增篩選條件,例如 array_element IS NOT NULL

  • UI 中顯示的資料類型反映了選取的資料集細微度。對於壓平合併的陣列,會顯示個別元素的資料類型,而不是陣列結構本身。

  • 無法在巢狀 JSON 欄位內的 struct 中新增屬性,只能在根層級新增。

  • 在串流轉換工作中,僅支援單一層級陣列的壓平合併。當壓平合併套用至多層級陣列時,例如 ARRAY<ARRAY<STRUCT>>,只有外部陣列會被壓平合併,產生 ARRAY<STRUCT>,而不是完全壓平合併的 STRUCT。此外,目前的 UI 僅允許在欄位層級設定壓平合併。因此,選取多層級陣列會隱含地僅將壓平合併套用至第一個陣列層級。

  • 當您參照基元陣列時,如果細微度是陣列,則會使用元素的資料類型。否則會使用陣列資料類型。

    在此範例中,OrderDetails 具有資料類型為 INT 的 CustomerID 陣列。如果細微度為 OrderDetails.CustomerID,則 OrderDetails.CustomerID 表示 INT;如果細微度為 OrderDetails,則表示 ARRAY<INT>。

JSON

在 JSON 檔案中,來源中的數值決定了目標資料類型:

  • INT8 用於符合支援的整數範圍且不包含小數部分的整數值。

  • REAL8 (DOUBLE) 用於值包含小數部分 (浮點數) 的情況。

  • STRING 用於數值超過支援的最大整數範圍的情況。

資料類型對應如下:

來源資料類型 Qlik Talend Data Integration 資料類型
STRING STRING
NUMBER INT8
NUMBER REAL8
NUMBER STRING
BOOLEAN BOOLEAN
ARRAY ARRAY
OBJECT STRUCT

CSV、TSV、REGEX 和 SPLIT

依預設,所有來源資料類型都會擷取為字串。使用 自動推斷類型 選項,將來源和目標類型對應如下:

來源資料類型 Qlik 資料類型
NUMERIC INT8/REAL8
True/TRUE/true/False/FALSE/false BOOLEAN
TIMESTAMP 格式為 yyyy-MM-dd HH:mm:ssyyyy-MM-ddTHH:mm:ssz 的時間戳記會剖析為 datetime 類型。如果包含時區,則該值會剖析為字串。

Parquet

Parquet 檔案支援實體和邏輯資料類型。實體資料類型定義值在磁碟上的儲存方式,例如 INT32、DOUBLE 或 BYTE_ARRAY。邏輯資料類型在實體表示之上提供語意意義,例如,識別整數值是否代表日期。當邏輯類型附加至 Parquet 欄位且在 Qlik 開放湖倉庫 中受支援時 (如下所列),串流登陸工作在定義目標結構描述時會使用邏輯類型,而不是底層的實體類型。這可確保正確解譯資料,保留預期的語意 (例如精確度、小數位數和時間意義),並在將資料寫入下游格式時產生更準確的結構描述。

來自 Parquet 檔案的資料對應如下:

來源資料類型 邏輯類型 Qlik Talend Data Integration 資料類型
BOOLEAN BOOLEAN
INT32 INT8
INT64 INT8
INT96 DATETIME
FLOAT REAL8
DOUBLE REAL8
BYTE_ARRAY STRING (編碼為 Base64)
FIXED_LEN_BYTE_ARRAY STRING (編碼為 Base64)
BYTE_ARRAY STRING STRING
BYTE_ARRAY ENUM STRING
INT32 DECIMAL INT8
INT64 DECIMAL INT8
FIXED_LEN_BYTE_ARRAY DECIMAL INT8/REAL8 (編碼為 Base64)
BYTE_ARRAY DECIMAL INT8/REAL8 (編碼為 Base64)
INT32 DATE DATE
INT32 TIME(MILLIS,true) INT8
INT64 TIME(MICROS,true) TIME
INT64 TIMESTAMP(MICROS,true) DATETIME
INT64 TIMESTAMP(MILLIS,true) DATETIME
NESTED TYPES STRUCT
LIST ARRAY
MAP ARRAY<STRUCT>。代表鍵值對的 struct 陣列。

Avro

下列對應適用於具有結構描述登錄的 Avro 檔案。

來源資料類型 邏輯類型 Qlik Talend Data Integration 資料類型
BOOLEAN BOOLEAN
INT INT8
LONG INT8
FLOAT REAL8
DOUBLE REAL8
BYTES STRING
STRING STRING
RECORD STRUCT
ENUM STRING
ARRAY ARRAY
MAP ARRAY<STRUCT>
UNION
FIXED STRING
BYTES DECIMAL DECIMAL
FIXED DECIMAL DECIMAL
INT DATE DATE
INT TIME-MILLIS INT8
INT TIME-MICROS TIME
LONG TIMESTAMP-MILLIS DATETIME
LONG TIMESTAMP-MICROS DATETIME

ORC

下列對應適用於 ORC 檔案。

來源資料類型 Qlik Talend Data Integration 資料類型
BOOLEAN BOOLEAN
BYTE INT8
SHORT INT8
INT INT8
LONG INT8
DATE DATE
FLOAT REAL8
DOUBLE REAL8
TIMESTAMP DATETIME
BINARY STRING
DECIMAL REAL8
STRING STRING
VARCHAR STRING
CHAR STRING
LIST ARRAY
MAP ARRAY<STRUCT>。代表鍵值對的 struct 陣列。
STRUCT STRUCT
UNION

限制和考量事項

  • 如果結構或陣列在登陸中被自動結構描述演進修改,則非由 Qlik Talend Cloud 串流工作建立的下游檢視可能需要更新,以免過時。

  • 如果工作有剖析錯誤,它不會進入錯誤狀態,也不會標記為需要注意。由於剖析錯誤是持續增加的指標,因此沒有錯誤狀態的結束標準。

  • 只有在沒有工作使用該叢集功能時,才允許移除叢集功能。

  • 對具有相同主索引鍵的記錄進行更新和刪除不得跨越分割區邊界,也就是說,它們需要對應至相同的分割區。

  • 如果來源包含大量欄位,則在工作和目錄中僅會顯示頻率最高的前 500 個欄位。所有欄位都會儲存至 S3 登陸中的 Avro 檔案,但只有前 500 個欄位會儲存在 Iceberg 表格中。在結構描述演進中,如果新增了新欄位,即使它很頻繁,也不會新增至頂端欄位中。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們!