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"
}
}
参考
詳細については、以下のドキュメントを参照してください: