全部產品
Search
文件中心

DataHub:console命令工具

更新時間:Aug 26, 2026

通過console工具訪問DataHub專案並運行命令。本文介紹如何安裝、配置和運行用戶端並提供用戶端相關使用說明資訊。

前提條件

  • 已安裝Java 8或以上版本

安裝並配置console用戶端

  1. 下載命令列工具進行datahub_console.tar.gz並解壓

  2. 解壓下載的安裝包檔案,得到bin、conf、lib檔案夾

  3. 進入conf檔案夾,在conf目錄中datahub.properties檔案中填寫ak及endpoint資訊,內容如下:

    datahub.accessid=
    datahub.accesskey=
    datahub.endpoint=

    參數詳情:

    參數

    是否必填

    描述

    樣本

    datahub.accessid

    阿里雲帳號或RAM使用者的AccessKey ID。

    datahub.accesskey

    AccessKey ID對應的AccessKey Secret。

    datahub.endpoint

    DataHub服務的串連地址。

    根據建立DataHub專案時選擇的地區以及網路連接方式配置Endpoint。各地區及網路對應的Endpoint值,請參見DataHub網域名稱列表

    https://dh-cn-hangzhou.aliyuncs.com

運行console用戶端

console用戶端可通過如下兩種方式啟動:

  • 方式一:在console用戶端安裝路徑下的bin檔案夾中,雙擊datahubcmd.bat檔案(Windows系統),即可啟動console用戶端,返回DataHub=>資訊,表明已經成功啟動。

  • 方式二:在系統的命令列執行視窗,進入console用戶端安裝路徑下的bin目錄,執行datahubcmd命令(Windows系統)或者 sh datahubcmd.sh (Linux系統或者Mac系統),即可啟動console用戶端,返回DataHub=>資訊,表明已經成功啟動。

擷取命令協助

通過如下兩種方式快速擷取console用戶端的命令協助。

  • 方式一:在console用戶端查看命令協助資訊。

    • 查看全部命令:

      help
    • 通過指定關鍵字查看相關命令,如擷取Topic列表:

      DataHub=>help lt
      NAME
              lt - List topic
      
      SYNOPSYS
              lt [-p] string
      
      OPTIONS
              -p  string
                      projectName
                      [Mandatory]
      
  • 方式二:在系統的命令列執行視窗,切換到console用戶端安裝路徑下的bin目錄,執行如下命令查看全部命令的協助資訊。

    ...\bin>datahubcmd help

使用指南

Project操作

  • 建立Project 

    cp -p test_project  -c test_comment
    • -p: project名稱

    • -c: project描述

  • 刪除project

    重要

    刪除Project前需要刪除Project下所有的資源(包括Topic以及Topic中的訂閱和同步任務),否則刪除會報錯。

    dp -p test_project
    • -p: project名稱

  • 擷取Project列表

    lp

Topic操作

  • 建立Topic 

    ct -p test_project -t test_topic -m TUPLE -f [(name,string,true)] -s 3 -l 3 -c test_comment
    • -p:project名稱

    • -t: topic名稱

    • -m: 表示不同的Topic類型,BLOB代表建立BLOB類型的Topic,Tuple表示建立Tuple類型的Topic

    • -f: Tuple類型 Topic欄位格式為[(fieldName,fieldType,isNull)],多個欄位以逗號隔開

    • -s: shard數量

    • -l: 資料生命週期,範圍(1-7)天

    • -c: topic描述

  • 刪除Topic

    dt -p test_project -t test_topic
    • -p: project名稱

    • -t: topic名稱

  • 擷取Topic資訊

    gt -p test_project -t test_topic
    • -p: project名稱

    • -t: topic名稱

  • 匯出Topic schema結構為JSON檔案

    gts -f filepath -p test_project -t test_topic
    • -f:儲存檔案路徑

    • -p: project名稱

    • -t: topic名稱

  • 擷取Topic列表

    lt -p test_project
    • -p: project名稱

  • 匯入Json檔案建立Topic 

    rtt -s 3 -l 3 -c test_comment -f filepath -p test_project -t test_topic
    • -s: shard數量

    • -l: 資料生命週期,範圍(1-7)天

    • -f: 檔案路徑

    • -p: project名稱

    • -t: topic名稱

  • 修改Topic生命週期

    utl -p test_project -t test_topic -l 3 -c test_comment
    • -p: project名稱

    • -t: topic名稱

    • -l: topic生命週期

    • -c: topic描述

  • 新增Topic欄位

    anf -p test_project -t test_topic -l [(f1,STRING)]
    • -p: project名稱

    • -t: topic名稱

    • -l:新增欄位名稱,欄位格式為[(fieldName,fieldType)]

Connector操作

  • 建立ODPS connector

    coc -p test_project -t test_topic -m SYSTEM_TIME -e odpsEndpoint -op odpsProject -ot odpsTable -oa odpsAccessId -ok odpsAccessKey -tr 60 -c (field1,field2) -tf ds hh mm
    • -p: project名稱

    • -t: topic名稱

    • -m: 參數表示不同的同步類型,目前同步到 odps 支援SYSTEM_TIME、USER_DEFINE、EVENT_TIME、META_TIME四種類型。

    • -e: odps endpoint,請填寫傳統網路地址

    • -op: odps Project名稱

    • -oa: 訪問odps的accessId

    • -ok: 訪問odps的accessKey

    • -tr參數表示分區的時間間隔,console工具預設為60分鐘

    • -tf參數 分區格式,ds 表示按天分區,ds hh表示按小時分區,ds hh mm表示按分鐘分區

  • 同步odps新增欄位

    acf -p test_project -t test_topic -c connectorId -f fieldName
    • -p: project名稱

    • -t: topic名稱

    • -c: connectorId,可通過資料同步頁簽查看

    • -f: fieldName,新增欄位名稱

  • 建立同步到MYSQL/RDS connector

    cdc -p test_project -t test_topic -h host -po 3306 -ty mysql -d mysql_database -ta msyql_table -u username -pa password -ht IGNORE -n (field1,field2)
    • -p: project名稱

    • -t: topic名稱

    • -h: host,請填寫傳統網路地址

    • -po: port

    • -ty參數表示同步的類型,共有兩種 

      • SINK_MYSQL表示建立同步到MySQL的connector

      • SINK_ADS 表示建立同步到ads的connector

    • -d: database名稱

    • -ta: table名稱

    • -u: userName

    • -pa: password

    • -ht表示插入方式,共有兩種 

      • IGNORE

      • OVERWRITE

    • -n表示同步的欄位,樣本:(field1,field2)

  • 建立 DATAHUB connector

    cdhc -p test_project -t test_topic -sp sinkProject -st sinkTopic -m AK -i accessid k accessKey
    • -p: project名稱 

    • -t: topic名稱 

    • -sp: sinkProject,資料匯入的Project 

    • -st: sinkTopic,資料匯入的Topic 

    • -m: 表示認證類型 

    • AK表示通過AK認證,需要填寫accessId和accessKey

    • STS表示通過STS認證

  • 建立FC connector

    cfc -p test_project -t test_topic -e endpoint -s service -f function -au AK -i accessId -k accessKey -n (field1,field2)
    • -p: project名稱

    • -t: topic名稱

    • -e: fc endpoint,請填寫傳統網路地址

    • -s: fc Service名稱

    • -f: fc Function名稱

    • -au: 認證方式 

    • AK表示通過AK認證,需要填寫accessId和accessKey

    • STS表示通過STS認證

    • -n表示同步的欄位,例如:(field1,field2)

  • 建立HOLOGRES connector

    chc -p test_project -t test_topic -e endpoint -cl (field,field2) -au AK -hp holoProject -ht holoTopic -i accessId -k accessKey -m Delimiter -l 1 -b false -n (field1,field2)
    • -p: project名稱

    • -t: topic名稱

    • -e: endpoint

    • -cl: 同步到hologres的欄位

    • -au表示認證方式,目前同步到holo只支援AK認證

    • -m表示解析類型

      • Delimiter需要指定lineDelimiter、parseData、columnDelimiter屬性

      • IngormaticaJson需要指定parseData屬性 

  • 建立OTSconnector

    cotsc -p test_project -t test_topic -i accessId -k accessKey -it instanceId -m AK -t table -wm PUT -c (field1,field2)
    • -p: project名稱 

    • -t: topic名稱 

    • -it: ots Instance名稱 

    • -m表示認證類型,預設使用STS 

    • AK表示通過AK認證,需要填寫accessId和accessKey

    • STS表示通過STS認證

    • -t: ots Table名稱 

    • -wm表示寫入方式,支援兩種寫入方式 

      • PUT

      • UPDATE

    • -c表示同步的欄位,例如:(field1,field2)

  • 建立Elasticsearch connector

    cec -p test_project -t test_es -e endpoint:9200 -i f1 -u user -w password -n (f1,f2) -ty (f1,f2) -r (f1,f2) -c (f1,f2) -ti "1970-01-01 00:00:00"
    • -p: project名稱

    • -t: topic名稱

    • -e: Elasticsearch endpoint,請填寫內網地址和內網連接埠,格式為內網地址:內網連接埠

    • -i: index,關於index詳情請參考建立同步Elasticsearch

    • -u: 訪問Elasticsearch的使用者名稱

    • -w: 訪問Elasticsearch的密碼

    • -n: ID屬性列

    • -ty: Type屬性列

    • -r: Router屬性列 

    • -c: 匯入欄位

    • -ti: 同步起始時間,格式為 yyyy-mm-dd hh:mm:ss

  • 建立 OSS connector

    csc -p test_project -t test_topic -b bucket -e endpoint -pr ossPrefix -tf ossTimeFormat -tr timeRange -c (f1,f2)
    • -p:project名稱

    • -t:topic名稱

    • -b:oss Bucket名稱

    • -e:oss Endpoint名稱

    • -pr:同步到OSS的目錄首碼

    • -tf:同步時間格式,例如:%Y%m%d%H%M表示按照分鐘層級進行分區

    • -tr:分區的時間間隔

    • -c:同步欄位

  • 刪除connector(可傳入多個connectorid,以空格分隔)

    dc -p test_project -t test_topic -c connectorId
    • -p: project名稱

    • -t: topic名稱

    • -c: connectorId,可通過資料同步頁簽查看

  • 擷取connector詳情資訊

    gc -p test_project -t test_topic -c connectorId
    • -p: project名稱

    • -t: topic名稱

    • -c: connectorId,可通過資料同步頁簽查看

  • 擷取某個Topic下面的connector列表

    lc -p test_project -t test_topic
    • -p: project名稱

    • -t: topic名稱

  • 重啟connector

    rc -p test_project -t test_topic -c connectorId
    • -p: project名稱

    • -t: topic名稱

    • -c: connectorId,可通過資料同步頁簽查看

  • 更新connector ak

    uca -p test_project -t test_topic -c connectorId  -a accessId -k accessKey
    • -p: project名稱

    • -t: topic名稱

    • -c: connectorId,可通過資料同步頁簽查看

shard操作

  • 合并shard

    ms -p test_project -t test_topic -s shardId -a adjacentShardId
    • -p: project名稱

    • -t: topic名稱

    • -s: 要合并的shardId

    • -a: 要合并的另一個shardId

  • 分裂shard

    ss -p test_project -t test_topic -s shardId
    • -p: project名稱

    • -t: topic名稱

    • -s: 要分裂的shardId

  • 擷取某個topic下面的所有shard

    ls -p test_project -t topicName
    • -p: project名稱

    • -t: topic名稱

  • 擷取同步shard的狀態

    gcs -p test_project -t test_topic -s shardId -c connectorId
    • -p: project名稱

    • -t: topic名稱

    • -s: shardId

    • -c: connectorId,可通過資料同步頁簽查看

  • 擷取訂閱消費的每個shard點位

    gso -p test_project -t test_topic -s subid -i shardId
    • -p: project名稱

    • -t: topic名稱

    • -s: 訂閱id

    • -i: shardId

訂閱操作

  • 建立訂閱

    css -p test_project -t test_topic -c comment
    • -p: project名稱

    • -t: topic名稱

    • -c: 訂閱描述

  • 刪除訂閱

    dsc -p test_project -t test_topic -s subId
    • -p: project名稱

    • -t: topic名稱

    • -s: 訂閱id

  • 查詢訂閱列表

    lss -p test_project -t test_topic
    • -p: project名稱

    • -t: topic名稱

上傳下載資料

  • 上傳資料

    uf -f filepath -p test_topic -t test_topic -m "," -n 1000
    • -f: 參數表示檔案路徑,注意:windows路徑下請添加轉義符,例如:D:\\test\\test.txt

    • -p project名稱

    • -t: topic名稱

    • -m: 參數表示文本分隔字元,目前支援逗號、空格分隔字元

    • -n: 參數表示每次上傳batchsize大小,預設為1000

    樣本: CSV檔案上傳

    以CSV檔案為例,介紹如何使用console工具將CSV檔案上傳到DataHub資料。CSV檔案的格式如下所示:

    1. 0,qe614c760fuk8judu01tn5x055rpt1,true,100.1,14321111111
    2. 1,znv1py74o8ynn87k66o32ao4x875wi,true,100.1,14321111111
    3. 2,7nm0mtpgo1q0ubuljjjx9b000ybltl,true,100.1,14321111111
    4. 3,10t0n6pvonnan16279w848ukko5f6l,true,100.1,14321111111
    5. 4,0ub584kw88s6dczd0mta7itmta10jo,true,100.1,14321111111
    6. 5,1ltfpf0jt7fhvf0oy4lo8m3z62c940,true,100.1,14321111111
    7. 6,zpqsfxqy9379lmcehd7q8kftntrozb,true,100.1,14321111111
    8. 7,ce1ga9aln346xcj761c3iytshyzuxg,true,100.1,14321111111
    9. 8,k5j2id9a0ko90cykl40s6ojq6gruyi,true,100.1,14321111111
    10. 9,ns2zcx9bdip5y0aqd1tdicf7bkdmsm,true,100.1,14321111111
    11. 10,54rs9cm1xau2fk66pzyz62tf9tsse4,true,100.1,14321111111

    上述CSV檔案中每行一條Record,按照(,)區分欄位。儲存在本地路徑/temp/test.csv中。DataHub Topic格式如下:

    欄位名稱

    欄位類型

    id

    BIGINT

    name

    STRING

    gender

    BOOLEAN

    salary

    DOUBLE

    my_time

    TIMESTAMP

    使用console工具命令如下

    uf -f /temp/test.csv -p test_topic -t test_topic -m "," -n 1000
  • 下載資料

    down -p test_project -t test_topic -s shardId -d subId -f filePath -ti "1970-01-01 00:00:00" -l 100 -g 0
    • -f: 參數表示檔案路徑,注意:windows路徑下請添加轉義符,例如:D:\\test\\test.txt

    • -p: project名稱

    • -t: topic名稱

    • -s: shardId

    • -d: 訂閱id

    • -f: 下載路徑

    • -ti: 參數表示讀取該時間之後的點位,格式為:yyyy-mm-dd hh:mm:ss

    • -l: 參數表示每次讀取的數量

    • -g: 參數表示是否一直讀 

      • 0表示唯讀一次,即擷取當前recordsize後不再消費

      • 1表示一直讀取

常見問題

  • 指令碼啟動失敗:windows環境下運行指令碼檢查指令碼路徑是否包含括弧