跳到主要內容 跳至補充內容

串流資料

上線程序會從來源傳輸資料,並將其儲存在 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 表格。按一下下一步

選取內容類型

選擇來源事件內容類型。

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

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

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

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

  • 按一下下一步

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

設定擷取屬性

設定管道的組態:

  • 讀取資料自

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

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

  • 欄取消巢狀

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

    • 解除巢狀結構為個別欄:資料會分割成個別欄。

  • 新資料集的載入設定

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

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

  • 目標表格分割

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

    資訊備註只有在載入設定中選取僅附加時,此選項才可用。
    • 無分割:將會建立沒有任何分割的表格。

    • 依事件擷取日期分割:將會透過擷取事件的日期分割表格。

  • 資料變更處理

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

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

  • 按一下下一步

摘要

摘要畫面會以視覺方式顯示您的管道:

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

  • 選取您希望在 管道建立後 執行的選項。

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

  • 專案顯示後,您可以準備並執行每個任務以開始擷取資料。

資料類型對應

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

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

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

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

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

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

  • UI 中顯示的資料類型反映選取的資料集精細度。對於扁平化陣列,會顯示個別元素的資料類型,而非陣列結構本身。

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

  • 在串流轉換任務中,僅支援單層陣列的扁平化。當扁平化套用至多層陣列時,例如 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 個資料類型
字串 字串
NUMBER INT8
NUMBER REAL8
NUMBER 字串
布林值 布林值
陣列 陣列
物件 STRUCT

CSV、TSV、REGEX 和 SPLIT

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

來源資料類型 Qlik 個資料類型
數字 INT8/REAL8
真/TRUE/真/假/FALSE/假 布林值
時間戳記 格式為 yyyy-MM-dd HH:mm:ssyyyy-MM-ddTHH:mm:ssz 的時間戳記會剖析為日期時間類型。如果包含時區,該值會被解析為字串。

Parquet

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

從 Parquet 檔案取得的資料對應如下:

來源資料類型 邏輯類型 Qlik Talend Data Integration 個資料類型
布林值   布林值
INT32   INT8
INT64   INT8
INT96   日期時間
浮動   REAL8
雙重   REAL8
BYTE_ARRAY   STRING (編碼為 Base64)
FIXED_LEN_BYTE_ARRAY   字串 (以 Base64 編碼)
BYTE_ARRAY 字串 字串
BYTE_ARRAY ENUM 字串
INT32 小數 INT8
INT64 小數 INT8
FIXED_LEN_BYTE_ARRAY 小數 INT8/REAL8 (以 Base64 編碼)
BYTE_ARRAY 小數 INT8/REAL8 (以 Base64 編碼)
INT32 日期 日期
INT32 時間(毫秒,true) INT8
INT64 時間(微秒,true) 時間
INT64 TIMESTAMP(MICROS,true) 日期時間
INT64 TIMESTAMP(MILLIS,true) 日期時間
巢狀類型   STRUCT
列示   陣列
地圖   陣列<結構>。代表鍵值對的結構陣列。

Avro

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

來源資料類型 邏輯類型 Qlik Talend Data Integration 個資料類型
布林值   布林值
INT   INT8
  INT8
浮動   REAL8
雙重   REAL8
位元組   字串
字串   字串
RECORD   STRUCT
ENUM   字串
陣列   陣列
地圖   陣列<結構>
聯集    
固定式   字串
位元組 小數 小數
固定式 小數 小數
INT 日期 日期
INT TIME-MILLIS INT8
INT TIME-MICROS 時間
TIMESTAMP-MILLIS 日期時間
TIMESTAMP-MICROS 日期時間

ORC

下列對應適用於 ORC 檔案。

來源資料類型 Qlik Talend Data Integration 個資料類型
布林值 布林值
位元組 INT8
INT8
INT INT8
INT8
日期 日期
浮動 REAL8
雙重 REAL8
時間戳記 日期時間
二進位 字串
小數 REAL8
字串 字串
VARCHAR 字串
CHAR 字串
列示 陣列
地圖 陣列<結構>。代表鍵值對的結構陣列。
STRUCT STRUCT
聯集  

限制和考慮事項

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

  • 如果任務有剖析錯誤,它將不會進入錯誤狀態,也不會被標記為需要注意。由於剖析錯誤是持續增加的指標,因此錯誤狀態沒有退出準則。

  • 只有在沒有任務使用該叢集功能的情況下,才允許移除叢集功能。

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

  • 如果來源包含大量資料行,則在任務和目錄中只會顯示依頻率排序的前 500 個資料行。所有資料行都會儲存到 S3 登陸中的 Avro 檔案,但只有前 500 個資料行會儲存在 Iceberg 資料表中。在結構描述演進中,如果新增資料行,即使該資料行很常用,也不會將其新增到熱門資料行。

此頁面是否對您有幫助?

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