Linkisは、オープンソースの分散コンピューティングミドルウェアであり、統一された計算リソース管理、タスクスケジューリング、実行サービスを提供します。Linkisは中間層を構築し、Apache Spark、Hadoop、TensorFlowなどのさまざまなデータ処理アプリケーションがデータストレージおよび計算リソースとやり取りできるようにします。
Linkis V3.1.2はOceanBaseデータベースをサポートしています。この記事では、LinkisでOceanBaseデータベースタスクを作成する方法について説明します。OceanBaseデータベースはMySQL 5.7のほとんどの機能と構文と互換性があります。そのため、OceanBaseデータベースをMySQLのように使用できます。
前提条件
OceanBaseデータベースを連携する前に、以下の事項を確認してください:
- OB Cloudインスタンスの準備が整っていること。
- 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アドレス Port 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"
}
}
参考
詳細については、以下のドキュメントを参照してください: