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