コンソールコマンドラインインターフェイスを使用して、DataHub プロジェクトにアクセスし、コマンドを実行できます。このトピックでは、クライアントのインストール、設定、および実行方法、ならびに使用方法について説明します。
前提条件
コンソールコマンドラインインターフェイスを使用する前に、次の要件が満たされていることを確認してください。
コンソールクライアントをインストールするデバイスに Java 8 以降のバージョンがインストールされていること。
コンソールクライアントのインストールと設定
datahub_console.tar.gz パッケージをダウンロードし、解凍します。
パッケージを解凍すると、bin、conf、および lib フォルダが見つかります。
conf フォルダに移動し、datahub.properties ファイルに AccessKey とエンドポイント情報を入力します。ファイルの内容は次のとおりです。
datahub.accessid=
datahub.accesskey=
datahub.endpoint=パラメーターは次のとおりです。
パラメーター | 必須 | 説明 | 例 |
datahub.accessid | はい | ご利用の Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーの AccessKey ID。 | N/A |
datahub.accesskey | はい | AccessKey ID に対応する AccessKey Secret。 | N/A |
datahub.endpoint | はい | DataHub サービスのエンドポイント。 DataHub プロジェクトを作成したときに選択したリージョンとネットワーク接続タイプに基づいて、エンドポイントを設定する必要があります。異なるリージョンとネットワークタイプのエンドポイントの詳細については、「DataHub ドメイン」をご参照ください。 | https://dh-cn-hangzhou.aliyuncs.com |
コンソールクライアントの実行
次のいずれかの方法でコンソールクライアントを起動できます。
方法 1: コンソールクライアントのインストールパスにある bin フォルダで、datahubcmd.bat ファイル (Windows の場合) をダブルクリックしてコンソールクライアントを起動します。クライアントが起動したことを示す次の情報が返されます。
方法 2: オペレーティングシステムのコマンドラインウィンドウで、コンソールクライアントのインストールパスにある bin フォルダに移動します。datahubcmd コマンド (Windows の場合) または sh datahubcmd.sh コマンド (Linux または macOS の場合) を実行してクライアントを起動します。次の図は、クライアントが DataHub に接続されていることを示しています。
コマンドヘルプの取得
次のいずれかの方法で、コンソールクライアントコマンドのヘルプを取得できます。
方法 1: コンソールクライアントでコマンドヘルプ情報を表示
すべてのコマンドのヘルプを表示。
helpキーワードを指定して関連コマンドのヘルプ情報を表示。
たとえば、Topic のリストを取得するには、次のようにします。
DataHub=>help lt
NAME
lt - List topic
SYNOPSYS
lt [-p] string
OPTIONS
-p string
projectName
[Mandatory]
方法 2: オペレーティングシステムのコマンドラインウィンドウで、コンソールクライアントのインストールパスにある bin フォルダに切り替えます。次のコマンドを実行して、すべてのコマンドのヘルプ情報を表示します。
...\bin>datahubcmd help使用ガイド
プロジェクト操作
プロジェクトの作成
-p: プロジェクト名。
-c: プロジェクトの説明。
cp -p test_project -c test_commentプロジェクトの削除
-p: プロジェクト名。
dp -p test_project注: プロジェクトを削除する前に、Topic、サブスクリプション、同期タスクを含むプロジェクト内のすべてのリソースを削除する必要があります。そうしないと、削除に失敗します。
プロジェクトのリストの取得
lpTopic 操作
Topic の作成
-p: プロジェクト名。
-t: Topic 名。
-m: Topic カテゴリ。BLOB は BLOB Topic を示し、TUPLE は TUPLE Topic を示します。
-f: TUPLE Topic のフィールド形式は [(fieldName,fieldType,isNull)] です。複数のフィールドはコンマ (,) で区切ります。
-s: シャード数。
-l: データの存続時間 (日数)。有効な値: 1 ~ 7。
-c: Topic の説明。
ct -p test_project -t test_topic -m TUPLE -f [(name,string,true)] -s 3 -l 3 -c test_commentTopic の削除
-p: プロジェクト名。
-t: Topic 名。
dt -p test_project -t test_topicTopic 情報の取得
-p: プロジェクト名。
-t: Topic 名。
gt -p test_project -t test_topicTopic スキーマを JSON ファイルにエクスポート
-f: ファイルの保存パス。
-p: プロジェクト名。
-t: Topic 名。
gts -f filepath -p test_project -t test_topicTopic のリストの取得
-p: プロジェクト名。
lt -p test_projectJSON ファイルから Topic を作成
-s: シャード数。
-l: データの存続時間 (日数)。有効な値: 1 ~ 7。
-f: ファイルパス。
-p: プロジェクト名を指定します。
-t: Topic 名。
rtt -s 3 -l 3 -c test_comment -f filepath -p test_project -t test_topicTopic のライフサイクルの変更
-p: プロジェクト名を指定します。
-t: Topic 名。
-l: Topic のライフサイクルを指定します。
-c: Topic の説明。
utl -p test_project -t test_topic -l 3 -c test_commentコネクタ操作
ODPS コネクタの作成
-p: プロジェクト名。
-t: Topic 名。
-m: 同期タイプ。ODPS でサポートされている同期タイプは、SYSTEM_TIME、USER_DEFINE、EVENT_TIME、および META_TIME です。
-e: ODPS エンドポイント。クラシックネットワークエンドポイントを入力する必要があります。
-op: ODPS プロジェクト名。
-oa: ODPS にアクセスするために使用される AccessKey ID。
-ok: ODPS にアクセスするために使用される AccessKey。
-tr: パーティション間隔 (分単位)。コンソールツールのデフォルト値は 60 です。
-tf: パーティション形式。`ds` は日によるパーティション分割を示し、`ds hh` は時間によるパーティション分割を示し、`ds hh mm` は分によるパーティション分割を示します。
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 mmODPS 同期用のフィールドを追加
-p: プロジェクト名。
-t: Topic 名。
-c: コネクタ ID。ID は [データ同期] タブで確認できます。
-f: 新しいフィールドの名前。
acf -p test_project -t test_topic -c connectorId -f fieldNameMySQL または RDS にデータを同期するコネクタの作成
-p: プロジェクト名。
-t: Topic 名。
-h: ホスト。クラシックネットワークアドレスを入力する必要があります。
-po: ポート。
-ty: 同期タイプ。次の 2 種類があります。
SINK_MYSQL: MySQL にデータを同期するコネクタを作成します。
SINK_ADS: ADS にデータを同期するコネクタを作成します。
-d: データベース名を指定します。
-ta: テーブル名。
-u: ユーザー名。
-pa: パスワード。
-ht: 挿入モード。次の 2 つのモードがあります。
IGNORE
OVERWRITE
-n: 同期するフィールド。例: (field1,field2)。
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)DataHub コネクタの作成
-p: プロジェクト名。
-t: Topic 名。
-sp: データがインポートされるシンクプロジェクト。
-st: データがインポートされるシンク Topic。
-m: 認証タイプ。
AK: AccessKey を使用した認証。AccessKey ID と AccessKey Secret を指定する必要があります。
STS を使用して認証が実行されることを指定します。
cdhc -p test_project -t test_topic -sp sinkProject -st sinkTopic -m AK -i accessid k accessKeyFC コネクタの作成
-p: プロジェクト名。
-t: Topic 名。
-e: FC エンドポイント。クラシックネットワークエンドポイントを入力する必要があります。
-s: FC サービス名。
-f: FC 関数の名前。
-au: 認証方式。
AK: AccessKey を使用した認証。AccessKey ID と AccessKey Secret を指定する必要があります。
STS: STS を使用した認証。
-n: 同期するフィールド。例: (field1,field2)。
cfc -p test_project -t test_topic -e endpoint -s service -f function -au AK -i accessId -k accessKey -n (field1,field2)Hologres コネクタの作成
-p: プロジェクト名。
-t: Topic 名。
-e: エンドポイント。
-cl: Hologres に同期するフィールド。
-au: 認証方式。現在、Hologres へのデータ同期では AccessKey 認証のみがサポートされています。
-m: 解析タイプ。Delimiter を選択した場合は、lineDelimiter、parseData、および columnDelimiter プロパティを指定する必要があります。InformaticaJson を選択した場合は、parseData プロパティを指定する必要があります。
Delimiter
InformaticaJson
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)OTS コネクタの作成
-p: プロジェクト名。
-t: Topic 名。
it: OTS インスタンスの名前。
-m: 認証タイプ。デフォルトでは STS が使用されます。
AK: AccessKey を使用した認証。AccessKey ID と AccessKey Secret を指定する必要があります。
STS: STS を使用した認証。
-t: OTS テーブル名。
-wm: 書き込みモード。次の 2 つの書き込みモードがサポートされています。
PUT
UPDATE
-c: 同期するフィールド。例: (field1,field2)。
cotsc -p test_project -t test_topic -i accessId -k accessKey -it instanceId -m AK -t table -wm PUT -c (field1,field2)OSS コネクタの作成
-p: プロジェクト名。
-t: Topic 名。
-b: OSS バケット名。
-e: OSS エンドポイント名。
-pr: OSS へのデータ同期のディレクトリプレフィックス。
-tf: 同期時間形式。例: %Y%m%d%H%M は分によるパーティション分割を示します。
-tr: パーティション間隔。
-c: 同期するフィールド。
csc -p test_project -t test_topic -b bucket -e endpoint -pr ossPrefix -tf ossTimeFormat -tr timeRange -c (f1,f2)コネクタの削除
-p: プロジェクト名。
-t: Topic 名。
-c: コネクタ ID。ID は [データ同期] タブで確認できます。
dc -p test_project -t test_topic -c connectorIdコネクタの詳細の取得
-p: プロジェクト名。
-t: Topic 名。
-c: コネクタ ID。ID は [データ同期] タブで確認できます。
gc -p test_project -t test_topic -c connectorIdTopic 内のコネクタのリストの取得
-p: プロジェクト名。
-t: Topic 名。
lc -p test_project -t test_topicコネクタの再起動
-p: プロジェクト名。
-t: Topic 名。
-c: コネクタ ID。ID は [データ同期] タブで確認できます。
rc -p test_project -t test_topic -c connectorIdコネクタの AccessKey の更新
-p: プロジェクト名。
-t: Topic 名。
-ty: 同期タイプ。例: SINK_ODPS。
uca -p test_project -t test_topic -ty SINK_ODPS -a accessId -k accessKeyシャード操作
シャードのマージ
-p: プロジェクト名を指定します。
-t: Topic 名。
-s: マージするシャードの ID。
-a: マージするもう一方のシャードの ID。
ms -p test_project -t test_topic -s shardId -a adjacentShardIdシャードの分割
-p: プロジェクト名。
-t: Topic 名。
-s: 分割するシャードの ID。
ss -p test_project -t test_topic -s shardIdTopic 内のすべてのシャードの取得
-p: プロジェクト名。
-t: Topic 名。
ls -p test_project -t topicNameシャードの同期ステータスの取得
-p: プロジェクト名。
-t: Topic 名。
-s: シャード ID。
-c: コネクタ ID。ID は [データ同期] タブで確認できます。
gcs -p test_project -t test_topic -s shardId -c connectorIdサブスクリプションの各シャードのコンシューマオフセットの取得
-p: プロジェクト名。
-t: Topic 名。
-s: サブスクリプション ID。
-i: シャード ID。
gso -p test_project -t test_topic -s subid -i shardIdサブスクリプション操作
サブスクリプションの作成
-p: プロジェクト名。
-t: Topic 名。
-c: サブスクリプションの説明。
css -p test_project -t test_topic -c commentサブスクリプションの削除
-p: プロジェクト名。
-t: Topic 名。
-s: サブスクリプション ID。
dsc -p test_project -t test_topic -s subIdサブスクリプションのリストのクエリ
-p: プロジェクト名。
-t: Topic 名。
lss -p test_project -t test_topicデータのアップロードとダウンロード
データのアップロード
-f: ファイルパス。注: Windows のパスの場合、エスケープ文字を追加する必要があります。例: D:\\test\\test.txt。
-p: プロジェクト名。
-t: Topic 名。
-m: テキスト区切り文字。コンマ (,) とスペースがサポートされています。
-n: 各アップロードのバッチサイズ。デフォルト値は 1000 です。
uf -f filepath -p test_topic -t test_topic -m "," -n 1000例: CSV ファイルのアップロード
この例では、コンソールコマンドラインインターフェイスを使用して 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,14321111111CSV ファイルでは、各行が Record であり、フィールドはコンマ (,) で区切られています。ファイルはローカルパス /temp/test.csv に保存されます。DataHub Topic のフォーマットは次のとおりです。
フィールド名 | フィールドタイプ |
id | BIGINT |
name | STRING |
gender | BOOLEAN |
salary | DOUBLE |
my_time | TIMESTAMP |
コンソールツールのコマンドは次のとおりです。
uf -f /temp/test.csv -p test_topic -t test_topic -m "," -n 1000データのダウンロード
-f: ファイルパス。注: Windows のパスの場合、エスケープ文字を追加する必要があります。例: D:\\test\\test.txt。
-p: プロジェクト名。
-t: Topic 名。
-s: シャード ID。
-d: サブスクリプション ID。
-f: ダウンロードパス。
-ti: データを読み取る開始時点。フォーマットは yyyy-mm-dd hh:mm:ss です。
-l: 毎回読み取るレコード数。
-g: データを継続的に読み取るかどうかを指定します。
0: 1 回のみ読み取ります。現在のレコード数が読み取られた後、消費は停止します。
1: 継続的に読み取ります。
down -p test_project -t test_topic -s shardId -d subId -f filePath -ti "1970-01-01 00:00:00" -l 100 -g 0よくある質問
スクリプトの起動に失敗します: Windows 環境でスクリプトを実行する場合、スクリプトパスに括弧が含まれているかどうかを確認してください。