全部產品
Search
文件中心

Lindorm:通過LTS操作頁面提交資料匯入任務

更新時間:Dec 06, 2025

Lindorm支援通過多種方式批量快速匯入資料,本文介紹在如何通過LTS操作頁面提交任務。

建立任務

  1. 登入LTS操作頁面,具體操作參見開通並登入LTS

  2. 在左側導覽列,選擇資料來源管理 > 添加資料來源,添加以下資料來源。

  3. 在左側導覽列中,選擇匯入Lindorm/HBase > 通用匯入

    說明
    • 3.8.12.4.3版本前的LTS請選擇匯入Lindorm/HBase > Bulkload

    • LTS的版本可在Lindorm管理主控台執行個體詳情頁的配置資訊地區查看。

  4. 單擊建立任務,配置以下參數。

    配置項

    參數

    描述

    選擇資料來源

    來源資料源

    選擇添加的ODPS資料來源或者HDFS資料來源。

    目標資料來源

    選擇添加的Lindorm寬表資料來源。

    檔案類型(非必選)

    資料來源為HDFS/OSS時需要選擇讀取的檔案類型。

    均衡分區

    採樣百分比,具體說明可參見均衡分區

    1. 點擊“均衡分區”選項,開啟均衡分區的能力。

    2. 在輸入框中輸入1-100整數數字,來表示採樣百分比(推薦值:1%-5%)。

    外掛程式配置

    Reader配置

    讀外掛程式配置可參考Reader外掛程式配置樣本

    Writer配置

    寫外掛程式配置可參考Writer外掛程式配置樣本

    作業運行參數配置

    Executor數量

    輸入Executor的數量。

    任務的最大並發度等於 4 × Executor數量,請根據實際資源和負載需求謹慎配置 Executor數量。

    spark配置

    輸入Spark配置,可不填寫。參數可參考計算引擎作業配置說明

    spark UDF

    使用自訂的UDF。僅支援Java開發的UDF,Jar包請通過計算引擎控制台上傳,可參考通過控制台上傳檔案

  5. 單擊建立

  6. Bulkload頁面單擊任務名查看快速匯入資料任務。

    • 單擊任務名,可以查看Spark任務的UI介面。

    • 單擊詳情,可以查看Spark任務的執行日誌。

    任務詳情頁

    說明

    來源資料源遷移到Lindorm寬表,在Lindorm寬表中不同分區的資料分布均勻的情況下,資料容量為100 GB(壓縮比為1:4)壓縮後匯入大概需要1個小時,根據具體情況不同可能會有區別。

查看任務運行狀態

查看任務進度

  1. 點擊任務名列中的連結進入詳情頁。

  2. 等任務成功啟動後,點擊具體任務連結。

    說明

    任務啟動需要一定時間,期間任務連結可能打不開,請耐心等待。

  3. 查看任務的整體進度。

查看任務日誌

支援通過多種方式查看任務日誌,包括控制台查看失敗日誌、完整記錄檔下載、以及作業記錄即時跟蹤,便於您按需排查問題。

  • 當任務失敗後,在任務詳情中直接查看FAILED日誌。

  • 在任務詳情中下載完整日誌。

  • 在任務進度頁面中查看作業記錄。

均衡分區

應用情境

本功能專為批量資料匯入(Bulkload)模式設計,適用於以下典型情境:

  1. 初始建表資料匯入階段
    當建立寬表首次進行資料匯入時,系統預設配置的分區數量可能無法匹配海量資料分布特性。若直接匯入,資料將在有限的分區中集中堆積,形成局部負載熱點,導致吞吐效率下降。

  2. 非均勻資料來源處理情境
    當來源資料本身存在分布不均衡時,常規分區策略會使資料在特定分區堆積,引發熱點任務拖慢整體進度,影響大量匯入效率。

技術原理

本功能通過動態分區最佳化演算法實現資料均衡分布,包含三階段智能處理流程:

  1. 採樣分析階段
    系統抽取未經處理資料集1%-5%的樣本,分析其分布特徵。

  2. 分區調整階段
    基於分析結果,系統動態調整分區策略,確保資料均勻分布。

  3. 全量匯入階段
    在完成分區動態調整後,系統對全量資料啟動分布式並行匯入任務。

Reader外掛程式配置樣本

MaxCompute任務配置樣本

來源資料源為MaxCompute,MaxCompute資料的讀外掛程式配置樣本。

{
  "table": "test",
  "column": [ 
    "id",
    "intcol",
    "doublecol",
    "stringcol",
    "string1col",
    "decimalcol"
  ],
  "partition": [
     "ds=20250820,hh=12"  
  ],
  "numPartitions":10 
}

參數

描述

是否必選

預設值

table

MaxCompute表名。

column

需要匯入的ODPS列名。

partition

  • 非分區表不寫;

  • 分區表必須配置分區資訊,且只能配置一個分區。

numPartitions

讀取源表時的最大並發度,不寫則系統自動計算。

讀取資料需要消耗MaxCompute專案的Tunnel Slot資源,請仔細評估;若Slot資源不足,會導致任務失敗。
參考文檔:Data Transmission Service概述

Parquet檔案任務配置樣本

來源資料源為HDFS,Parquet檔案的讀外掛程式配置樣本。

{
  "filePath":"parquet/",
  "column": [   //parquet檔案中的列名
    "id",
    "intcol",
    "doublecol",
    "stringcol",
    "string1col",
    "decimalcol"
  ]
}

參數

描述

是否必選

預設值

filePath

資料所在的路徑,有以下四種情況:

  1. 單獨某個檔案路徑,例如: /tables/search_info/ds=20250820/part-*.parquet

  2. 單級資料目錄,例如: /tables/search_info/ds=20250820,路徑下面全是資料檔案,沒有子目錄。

  3. 多級資料目錄,例如: /tables/search_info/。

  • 會讀取:

    • 路徑下的資料檔案;

    • 以及所有“分區樣式”的子目錄(col=value 多級都可),並把這些目錄名解析成分區列。

  • 不會讀取:

    • 非分區樣式的任意深度子目錄。

  • 會忽略:

    • 名稱以“.”或“_”開頭的檔案/目錄(例如 _SUCCESS、_temporary、.DS_Store 等)。

  1. 以上多個目錄或者檔案的拼接,不同路徑之間使用","分隔,例如: /tables/search_info/ds=20250820,/tables/search_info/ds=20250821

column

需要匯入的列名。

basePath

指定分區資料集的根目錄,通常在需要擷取分區列的時候使用。

  • 例:/table/date=2025-09-01/hour=10/1.parquet, /table/date=2025-09-02/hour=11/2.parquet

  • 設定"basePath":"/table" 後,會識別出分區列 date、hour,否則通常拿不到這些分區列。

int96RebaseMode

int96時間戳記解析方式,解析舊版本int96類型需設定為:"LEGACY"。

pathGlobFilter

路徑過濾器,支援glob模式的檔案路徑過濾,例如:*.parquet,唯讀取parquet檔案。

CSV檔案任務配置樣本

來源資料源為HDFS,CSV檔案的讀外掛程式配置樣本。

重要

CSV為純文字格式檔案,配置任務時需要在"schema"中顯式地聲明所有欄位的類型

{
  "filePath":"csv/",
  "header": false,
  "delimiter": ",",
  "schema": [
    "id|string",
    "intcol|int",
    "doublecol|double",
    "stringcol|string",
    "string1col|string",
    "decimalcol|decimal"
  ],
  "column": [
    "id",
    "intcol",
    "doublecol",
    "stringcol",
    "string1col",
    "decimalcol"
  ]
}

參數

描述

是否必選

預設值

filePath

資料所在的路徑,有以下四種情況:

  1. 單獨某個檔案路徑,例如: "/tables/search_info/ds=20250820/part-*.csv"。

  2. 單級資料目錄,例如: "/tables/search_info/ds=20250820",路徑下面全是資料檔案,沒有子目錄。

  3. 多級資料目錄,例如: "/tables/search_info/"。

  • 會讀取:

    • 路徑下的資料檔案;

    • 以及所有“分區樣式”的子目錄(col=value 多級都可),並把這些目錄名解析成分區列。

  • 不會讀取:

    • 非分區樣式的任意深度子目錄。

  • 會忽略:

    • 名稱以“.”或“_”開頭的檔案/目錄(例如 _SUCCESS、_temporary、.DS_Store 等)。

  1. 以上多個目錄或者檔案的拼接,不同路徑之間使用","分隔,例如: "/tables/search_info/ds=20250820,/tables/search_info/ds=20250821"。

schema

申明csv檔案的所有列名和類型,格式為:列名|類型,例如:"id|string"。在申明時需要注意:

  1. 需要寫上檔案中所有的列;

  2. 順序需與檔案中欄位順序保持一致。

basePath

指定分區資料集的根目錄,通常在需要擷取分區列的時候使用。

  • 例:/table/date=2025-09-01/hour=10/1.parquet, /table/date=2025-09-02/hour=11/2.parquet。

  • 設定"basePath":"/table" 後,會識別出分區列 date、hour,否則通常拿不到這些分區列。

column

需要匯入的列名,必須存在於上述schema申明中 。

nullValue

把欄位中等於指定字串的值識別為 null。例如CSV中經常使用 “NULL” 或 “\N” 表示空值,可設定: "nullValue":"NULL"或 "nullValue":"\N"。

mode

異常資料處理模式。

  • PERMISSIVE:盡量解析,列數不足補 null;遇到格式問題儘可能容錯,不拋異常。

  • DROPMALFORMED:丟棄解析失敗或列數不匹配的行,不報錯。

  • FAILFAST:遇到壞行立即拋異常,終止讀取。

PERMISSIVE

timestampFormat

時間戳記格式,若欄位以時間戳記類型解析時為必填,例如: "yyyy-MM-dd HH:mm:ss"。

dateFormat

日期格式,若欄位以日期類型解析時為必填,例如:"yyyy-MM-dd"

pathGlobFilter

路徑過濾器,支援glob模式的檔案路徑過濾,例如:*.csv,唯讀取csv檔案。

ORC檔案任務配置樣本

來源資料源為HDFS,ORC檔案的讀外掛程式配置樣本。

{
  "filePath":"orc/",
  "column": [
    "id",
    "intcol",
    "doublecol",
    "stringcol",
    "string1col",
    "decimalcol"
  ]
}

參數

描述

是否必選

預設值

filePath

資料所在的路徑,有以下四種情況:

  1. 單獨某個檔案路徑,例如: /tables/search_info/ds=20250820/part-*.orc

  2. 單級資料目錄,例如: /tables/search_info/ds=20250820,路徑下面全是資料檔案,沒有子目錄。

  3. 多級資料目錄,例如: /tables/search_info/。

  • 會讀取:

    • 路徑下的資料檔案;

    • 以及所有“分區樣式”的子目錄(col=value 多級都可),並把這些目錄名解析成分區列。

  • 不會讀取:

    • 非分區樣式的任意深度子目錄。

  • 會忽略:

    • 名稱以“.”或“_”開頭的檔案/目錄(例如 _SUCCESS、_temporary、.DS_Store 等)。

  1. 以上多個目錄或者檔案的拼接,不同路徑之間使用","分隔,例如: /tables/search_info/ds=20250820,/tables/search_info/ds=20250821。

column

需要匯入的列名。

basePath

指定分區資料集的根目錄,通常在需要擷取分區列的時候使用。

  • 例:/table/date=2025-09-01/hour=10/1.parquet, /table/date=2025-09-02/hour=11/2.parquet

  • 設定"basePath":"/table" 後,會識別出分區列 date、hour,否則通常拿不到這些分區列。

pathGlobFilter

路徑過濾器,支援glob模式的檔案路徑過濾,例如:*.orc,唯讀取orc檔案。

資料轉換配置樣本

注意事項
  • 所有函數必須在reader的配置上使用,常見內建函數使用方法可參考函數說明

  • MaxCompute、Parquet、ORC、CSV均支援資料轉換。

  • 支援標準的Spark SQL內建函數,參考文檔:Spark SQL內建函數

  • 支援使用UDF函數,使用方式參考作業運行參數配置

{
  "column": [
    "CAST(intcol as string)",           //將整數轉為字串類型,無法轉換則報錯
    "TRY_CAST('abc' as INT)",           //嘗試轉換類型,失敗返回NULL
    "COALESCE(nullable_stringcol,'')",  //若欄位為NULL,則返回Null 字元串
    "DATE_FORMAT('2023-08-15', 'MM/dd/yyyy')", //對日期進行格式化輸出
    "UNIX_MILLIS(CURRENT_TIMESTAMP())",   //擷取當前毫秒級時間戳記
    "CONCAT(stringcol, 'hello', ' world')",   //字串拼接
    "SUBSTRING('Spark SQL', 7)",        //提取子串,返回:'SQL'
    "MD5(stringcol2)"                   //計算md5的值
  ]
}

Writer外掛程式配置樣本

Lindorm SQL表匯入

匯入Lindorm SQL表格的寫外掛程式配置樣本。

{
  "namespace": "default",
  "lindormTable": "xxx",
  "compression":"zstd",
  "sortMode": "row",
  "replication":2,
  "columns": [
       "id",
       "intcol",
       "doublecol",
       "stringcol",
       "string1col",
       "decimalcol"
  ]
}

Lindorm SQL表動態列匯入

匯入Lindorm SQL表動態列的寫外掛程式配置樣本。

重要

動態列的Schema不持久化儲存,匯入時必須指定列簇和對應的資料類型。

{
  "namespace": "default",
  "lindormTable": "xxx",
  "compression":"zstd",
  "sortMode": "row",
  "replication":2,
  "columns": [
       "id",
       "intcol",
       "doublecol",
       "stringcol",
       "f:dynamic_intcol||INT",
       "f:dynamic_stringcol||STRING"
  ]
}

Lindorm SQL多列簇表匯入

匯入Lindorm SQL多列簇表的寫外掛程式配置樣本。

多列簇表包含多個列簇,其中預設列簇名為'f',同時支援添加其他自訂欄簇(如'cf1'、'cf2')。

{
  "namespace": "default",
  "lindormTable": "xxx",
  "compression":"zstd",
  "sortMode": "row",
  "replication":2,
  "columns": [
       "id",
       "intcol",
       "doublecol",
       "stringcol",
       "cf1:cf1_int",
       "cf2:cf2_string"
  ]
}

Lindorm相容HBase表格匯入

Lindorm相容HBase表格匯入的寫外掛程式配置樣本。

{
  "namespace": "default",
  "lindormTable": "xxx",
  "compression":"zstd",
  "sortMode": "row",
  "replication":2,
  "columns": [
    "ROW||String",    //ROW固定代表rowkey,String表示類型
    "f:intcol||Int",  //格式為列簇:列名||列類型
    "f:doublecol||Double",
    "f:stringcol||String",
    "f:string1col||String",
    "f:decimalcol||Decimal"
  ]
}

使用API模式匯入Lindorm

當前Bulkload模式無法匯入索引表資料,若需在匯入主表資料時同步構建索引表,可使用API模式。

以下為使用API模式匯入Lindorm的寫外掛程式配置樣本。

重要

使用API模式匯入資料時,會直接消耗Lindorm執行個體的資源,請務必限制匯入速率,防止影響線上生產服務效能。

{
  "namespace": "default",
  "lindormTable": "xxx",
  "compression":"zstd",
  "sortMode": "row",
  "replication":2,
  "columns": [
       "id",
       "intcol",
       "doublecol",
       "stringcol",
       "string1col",
       "decimalcol"
  ],
  "writeMode":"api"  //指定為API匯入模式
}

Writer配置參數詳情

參數

描述

是否必選

預設值

namespace

Lindorm寬表的命名空間

lindormTable

Lindorm寬表的名稱

columns

目標表的列映射配置,根據匯入至目標表類型填寫。

  • 如果匯入Lindorm寬表,columns需要配置Lindorm SQL寬表的列名,和讀配置中的column對應。

  • 如果匯入HBase相容表,columns需要配置HBase表動態列,格式為:列簇:列名||類型。

compression

壓縮演算法,推薦使用zstd,其他可選snappy、gz、lzo,不使用壓縮演算法配置為none(預設值)。

none(不用壓縮)

timestamp

指定時間戳記匯入(所有欄位共用一個時間戳記),不配置則預設為系統目前時間。支援以下類型:

  • Long類型:13位時間戳記(如 1719472800000)

  • String類型:yyyy-MM-dd HH:mm:ss(如 2024-09-01 12:34:56)
    yyyy-MM-dd HH:mm:ss SSS(如 2024-09-01 12:34:56.789)

系統時間

timeCol

指定來源資料中某一列的值為時間戳記,每一行可以有不同的時間戳記,預設值為-1(無時間列)。

  • timeCol表示源端時間列的下標索引,從0開始計算。

  • 時間列中的值必須為Long類型、值為13位的時間戳記。

  • 預設時間列不會作為資料列匯入Lindorm。

-1(無時間列)

sortMode

Bulkload匯入模式下的資料排序方式,支援row(行排序)和kv(索引值排序)兩種排序方式,預設值為kv。

  • 建議列數少於1000的表採用 "row" 排序模式。

kv(索引值排序)

replication

寫入檔案的副本數,預設值為3,推薦2副本。

3

writeMode

資料匯入的方式,分為bulkload和api兩種,預設為bulkload。

  • 當前bulkload模式無法匯入索引表資料,若需在匯入主表資料時同步構建索引表,可使用api模式。

bulkload