メインコンテンツまでスキップ

Kyuubi と Doris の使用

概要

Apache Kyuubi は、データウェアハウスとレイクハウス上でサーバーレス SQL を提供する分散型マルチテナントゲートウェイです。 Apache Kyuubi は、Spark、Flink、Hive、JDBC などのエンジンに対して、Thrift、Trino、MySQL などの様々なプロトコルを提供しています。 Doris は、Apache Kyuubi でサポートされている Doris dialect を使用して JDBC データソースとして接続できます。 Apache Kyuubi は、HA、サービス発見、統合認証、エンジンライフサイクル管理など、一連の有用な機能も提供します。

使用方法

Apache Kyuubi のダウンロード

Apache Kyuubi を https://kyuubi.apache.org/zh/releases.html からダウンロードします

Apache Kyuubi 1.6.0 以降を取得し、フォルダに展開します。

Doris を Kyuubi データソースとして設定

  • $KYUUBI_HOME/conf/kyuubi-defaults.conf で Kyuubi 設定を更新します
kyuubi.engine.type=jdbc
kyuubi.engine.jdbc.type=doris
kyuubi.engine.jdbc.driver.class=com.mysql.cj.jdbc.Driver
kyuubi.engine.jdbc.connection.url=jdbc:mysql://xxx:xxx
kyuubi.engine.jdbc.connection.user=***
kyuubi.engine.jdbc.connection.password=***
ConfigurationDescription
kyuubi.engine.typeEngine タイプ、jdbcを指定
kyuubi.engine.jdbc.typeJDBCサービスタイプ、dorisを指定
kyuubi.engine.jdbc.driver.classJDBCドライバークラス名、com.mysql.cj.jdbc.Driverを指定
kyuubi.engine.jdbc.connection.urlDoris FEへのJDBC URL
kyuubi.engine.jdbc.connection.userJDBCユーザー名
kyuubi.engine.jdbc.connection.passwordJDBCパスワード

MySQL JDBC Driverの追加

MySQL JDBC Driver mysql-connector-j-8.X.X.jar$KYUUBI_HOME/externals/engines/jdbcにコピーしてください。

Kyuubi Serverの起動

$KYUUBI_HOME/bin/kyuubi startを実行してください。 起動後、デフォルトでポート10009がKyuubi ServerによりThriftプロトコルでリッスンされます。

以下の例では、beeline CLIを使用してThriftプロトコルでKyuubi経由でDorisにクエリを実行する基本的な例を示します。

BeelineでKyuubiに接続

$ $KYUUBI_HOME/bin/beeline -u "jdbc:hive2://xxxx:10009/"

Kyuubi へのクエリ実行

クエリステートメント select * from demo.expamle_tbl; を実行し、クエリ結果を返します。

0: jdbc:hive2://xxxx:10009/> select * from demo.example_tbl;  

2023-03-07 09:29:14.771 INFO org.apache.kyuubi.operation.ExecuteStatement: Processing anonymous's query[bdc59dd0-ceea-4c02-8c3a-23424323f5db]: PENDING_STATE -> RUNNING_STATE, statement:
select * from demo.example_tbl
2023-03-07 09:29:14.786 INFO org.apache.kyuubi.operation.ExecuteStatement: Query[bdc59dd0-ceea-4c02-8c3a-23424323f5db] in FINISHED_STATE
2023-03-07 09:29:14.787 INFO org.apache.kyuubi.operation.ExecuteStatement: Processing anonymous's query[bdc59dd0-ceea-4c02-8c3a-23424323f5db]: RUNNING_STATE -> FINISHED_STATE, time taken: 0.015 seconds
+----------+-------------+-------+------+------+------------------------+-------+-----------------+-----------------+
| user_id | date | city | age | sex | last_visit_date | cost | max_dwell_time | min_dwell_time |
+----------+-------------+-------+------+------+------------------------+-------+-----------------+-----------------+
| 10000 | 2017-10-01 | Beijing | 20 | 0 | 2017-10-01 07:00:00.0 | 70 | 10 | 2 |
| 10001 | 2017-10-01 | Beijing | 30 | 1 | 2017-10-01 17:05:45.0 | 4 | 22 | 22 |
| 10002 | 2017-10-02 | Shanghai| 20 | 1 | 2017-10-02 12:59:12.0 | 400 | 5 | 5 |
| 10003 | 2017-10-02 | Guangzhou| 32 | 0 | 2017-10-02 11:20:00.0 | 60 | 11 | 11 |
| 10004 | 2017-10-01 | Shenzhen| 35 | 0 | 2017-10-01 10:00:15.0 | 200 | 3 | 3 |
| 10004 | 2017-10-03 | Shenzhen| 35 | 0 | 2017-10-03 10:20:22.0 | 22 | 6 | 6 |
+----------+-------------+-------+------+------+------------------------+-------+-----------------+-----------------+
6 rows selected (0.068 seconds)