Linkisは、オープンソースの分散コンピューティングミドルウェアであり、統一された計算リソース管理、タスクスケジューリング、実行サービスを提供します。Linkisは中間層を構築し、Apache Spark、Hadoop、TensorFlowなどのさまざまなデータ処理アプリケーションがデータストレージおよび計算リソースとやり取りできるようにします。
Linkis V3.1.2はOceanBaseデータベースをサポートしています。本記事では、Linkis上でOceanBaseデータベースタスクを作成する方法について説明します。OceanBaseデータベースはMySQL 5.7のほとんどの機能や構文と互換性があります。そのため、OceanBaseデータベースをMySQLのように使用することができます。
前提条件
OceanBaseデータベースを統合する前に、以下の情報を確認してください:
- OceanBaseデータベースがインストールおよびデプロイ済みであること。詳細については、OceanBaseデータベースのクイックスタートを参照してください。
- Linkisのインストールとデプロイが完了していること。詳細については、Linkisデプロイガイドを参照してください。
Shellを使用したタスクの送信
sh ./bin/linkis-cli -engineType jdbc-4 -codeType jdbc -code "show tables" -submitUser hadoop -proxyUser hadoop -runtimeMap wds.linkis.jdbc.connect.url=jdbc:mysql://${ip}:${port}/${db_name} -runtimeMap wds.linkis.jdbc.driver=com.mysql.jdbc.Driver -runtimeMap wds.linkis.jdbc.username=${username} -runtimeMap wds.linkis.jdbc.password=${password}
Linkis SDKを使用したタスクの送信
Linkis は、Java および Scala の SDK を提供し、Linkis サーバーにタスクを送信するために使用されます。詳細については、JAVA SDK操作ドキュメントを参照してください。OceanBase タスクの場合、Demo ファイル内の EngineConnType および CodeType パラメータを変更するだけで済みます:
Map<String, Object> labels = new HashMap<String, Object>();
labels.put(LabelKeyConstant.ENGINE_TYPE_KEY, "jdbc-4"); // required engineType Label
labels.put(LabelKeyConstant.USER_CREATOR_TYPE_KEY, "hadoop-IDE");// required execute user and creator
labels.put(LabelKeyConstant.CODE_TYPE_KEY, "jdbc"); // required codeType
LinkisコンソールからのOceanBaseタスクの送信
OceanBaseデータソースの追加
- Linkisコンソールにログインします。
- 左側のナビゲーションバーで、データソース管理をクリックします。
- データソース管理ページで、右上の新規データソースをクリックします。
- 新規データソースダイアログで、データソースタイプをMySQLに選択します。
- 各パラメータを設定します。
パラメータ |
説明 |
|---|---|
| データソース名 | データソースの識別子 |
| Host | OceanBaseデータベースホストのIPアドレス |
| ポート | OceanBaseデータベースホストIPのポート番号 |
| ユーザー名 | OceanBaseデータベースのユーザー名 |
| パスワード | OceanBaseデータベースユーザーのパスワード |
- 接続テストをクリックして、Linkisとデータベースのネットワーク接続、およびユーザー名とパスワードの有効性を確認します。
- 接続テストに合格したら、完了をクリックします。
- データソースを公開します。
データソース管理ページで、OceanBaseデータソースのバージョンをクリックし、バージョンリストの編集ポップアップで、公開をクリックします。
OceanBaseタスクの送信
データソース名を指定してOceanBaseタスクを送信する
リクエストURL:http://${gateway_url}:${port}/api/rest_j/v1/entrance/submit
リクエスト方法:POST
リクエストパラメータ:
{
executionContent: {
code: "show databases",
runType: "jdbc"
},
params: {
variable: {},
configuration: {
startup: {},
runtime: {
wds.linkis.engine.runtime.datasource: "ob-test"
}
}
},
labels: {
engineType: "jdbc-4"
}
}
応答結果:
{
method: "/api/entrance/submit",
status: 0,
message: "OK",
data: {
taskID: 93,
execID: "exec_id018017linkis-cg-entrance000830fb1364:9104IDE_hadoop_jdbc_0"
}
}
参考
詳細については、以下のドキュメントを参照してください: