このトピックでは、JDBC データテーブルの使用方法について説明します。

構文

CREATE TABLE tbName
USING jdbc2
OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*);
重要 上記の構文では、jdbc2 を使用しています。

設定パラメーター

パラメーター 説明 必須
url データベースの URL。 はい
driver データベース接続の確立に使用されるドライバー。 このパラメーターを "com.mysql.jdbc.Driver"eper.quorum":"a.b.c.d:2181"}' に設定できます。 はい
dbtable データテーブルの名前。 はい
user データベースへの接続に使用されるユーザー名。 はい
password データベースへの接続に使用されるパスワード。 はい
batchsize 一度にデータベースに更新されるデータの数。 このパラメーターは、データがデータベースに書き込まれるときに有効になります。 いいえ
isolationLevel トランザクション分離レベル。 デフォルト値:READ_UNCOMMITTED。 いいえ
  • トランザクション分離レベル
    トランザクション分離レベル ダーティリード ノンリピータブルリード ファントムリード
    READ_UNCOMMITTED はい はい はい
    READ_COMMITTED いいえ はい はい
    REPEATABLE_READ いいえ いいえ はい
    SERIALIZABLE いいえ いいえ いいえ
    NONE - - -

テーブルスキーマ

JDBC データテーブルを作成するとき、データテーブルのフィールドを明示的に定義する必要はありません。 たとえば、有効なテーブル作成文を次に示します。

spark-sql> CREATE DATABASE IF NOT EXISTS default;
spark-sql> USE default;
spark-sql> DROP TABLE IF EXISTS rds_table_test;
spark-sql> CREATE TABLE rds_table_test
         > USING jdbc2
         > OPTIONS (
         > url="jdbc:mysql://rm-bp11*********i7w9.mysql.rds.aliyuncs.com:3306/default? useSSL=true",
         > driver="com.mysql.jdbc.Driver",
         > dbtable="test",
         > user="root",
         > password="thisisapassword",
         > batchsize="100",
         > isolationLevel="NONE");

spark-sql> DESC rds_table_test;
id  int NULL
name  string  NULL
Time taken: 0.413 seconds, Fetched 2 row(s)

データ書き込み

データベースへのデータの書き込み方法を表すには、次の追加の SQL 文を作成する必要があります。
spark-sql> SET streaming.query.${queryName}.sql=insert into `test` (`id`,`name`) values(?, ?) ;
spark-sql> SET ...
spark-sql> INSERT INTO rds_table_test SELECT ...