カタログは、データベース、テーブル、パーティションなどのメタデータを提供します。このメタデータには、データベースや他の外部システムのデータにアクセスするために必要な情報が含まれています。StarRocks カタログを設定すると、Real-time Compute for Apache Flink の開発コンソールからテーブルを手動で登録することなく、そのメタデータを直接読み取ることができます。これにより、ジョブ開発の効率が向上し、データの正確性が保証されます。このトピックでは、StarRocks カタログの作成、表示、使用、削除方法について説明します。
制限事項
StarRocks カタログは、Flink 1.15 以降向けの Ververica Runtime (VVR) 6.0.6 以降でのみサポートされています。
カタログを使用して StarRocks テーブルを作成または変更することはできません。
StarRocks カタログの作成
StarRocks カタログは、UI または SQL コマンドを使用して作成できます。UI を使用することを推奨します。
UI の使用
Data Management ページに移動します。
Real-time Compute for Apache Flink コンソールにログインします。管理するワークスペースを見つけ、[操作] 列の [コンソール] をクリックします。
[Data Management] をクリックします。
[カタログの作成] をクリックし、[StarRocks] を選択して [次へ] をクリックします。
パラメーターを設定します。
重要これらの設定は、カタログの作成後に変更することはできません。設定を変更するには、カタログを削除して再作成する必要があります。

パラメーター
説明
必須
注意
カタログ名
StarRocks カタログの名前。
はい
名前には、小文字 (a-z) と数字 (0-9) のみ使用できます。大文字や、ハイフン (-)、アンダースコア (_) などの特殊文字は使用できません。
エンドポイント
StarRocks フロントエンド (FE) のエンドポイント。
はい
FE の IP アドレスと Java Database Connectivity (JDBC) ポートを指定します。フォーマットは
jdbc:mysql://ip:portを使用します。ポートは通常 9030 です。dbname
アクセスするデフォルトの StarRocks データベースの名前。
はい
なし。
ユーザー名
StarRocks にアクセスするためのユーザー名。
はい
なし。
パスワード
StarRocks にアクセスするためのパスワード。
はい
パスワードの漏洩を防ぐため、プレーンテキストパスワードの代わりに変数を使用してください。詳細については、「プロジェクト変数」をご参照ください。
[確認] をクリックします。
左側の [メタデータ] エリアで、作成されたカタログを表示できます。
SQL コマンドの使用
[データクエリ] ページのテキストエディターで、StarRocks カタログを作成するコマンドを入力します。
CREATE CATALOG <catalogname> WITH ( 'type' = 'starrocks', 'endpoint' = '<ip>:<port>', 'username' = '<userName>', 'password' = '<password>', 'dbname' = '<dbname>' );VVR 11 以降
パラメーター
説明
必須
注意
catalogname
StarRocks カタログの名前。
はい
名前には、小文字 (a-z) と数字 (0-9) のみ使用できます。大文字や、ハイフン (-)、アンダースコア (_) などの特殊文字は使用できません。
type
カタログのタイプ。
はい
値を starrocks に設定します。
endpoint
StarRocks FE のエンドポイント。
いいえ
FE の IP アドレスと JDBC ポートを指定します。フォーマットは
jdbc:mysql://ip:portを使用します。ポートは通常 9030 です。jdbc-url
FE ノード上の MySQL サーバーにアクセスするための URL。
いいえ
複数のアドレスはカンマ (,) で区切ります。フォーマット:
jdbc:mysql://<fe_host1>:<fe_query_port1>,<fe_host2>:<fe_query_port2>。重要jdbc-url と http-url を一緒に設定するか、endpoint パラメーターのみを設定することができます。どちらの方法でも同じ結果が得られます。いずれかのオプションを選択してください。
http-url
FE ノード上の HTTP サーバーにアクセスするための URL。
いいえ
複数のアドレスはセミコロン (;) で区切ります。フォーマット:
<fe_host1>:<fe_http_port1>;<fe_host2>:<fe_http_port2>。重要jdbc-url と http-url を一緒に設定するか、endpoint パラメーターのみを設定することができます。どちらの方法でも同じ結果が得られます。いずれかのオプションを選択してください。
username
StarRocks にアクセスするためのユーザー名。
はい
なし。
password
StarRocks にアクセスするためのパスワード。
はい
パスワードの漏洩を防ぐため、プレーンテキストパスワードの代わりに変数を使用してください。詳細については、「プロジェクト変数」をご参照ください。
dbname
アクセスするデフォルトの StarRocks データベースの名前。
いいえ
なし。
default-database
アクセスするデフォルトの StarRocks データベースの名前。
いいえ
このパラメーターはコミュニティ版と互換性があり、dbname と同じ効果があります。どちらか一方を使用してください。
table.num-buckets
カタログを通じて作成されたテーブルの各パーティションのデフォルトのバケット数。
いいえ
デフォルト値なし。
table.char-expand-multiple
カタログを通じて作成されたテーブルの varchar および char 型の長さを、ソーステーブルに対して拡張するための乗数。
いいえ
デフォルトの乗数は 4 です。
table.binary-padding
カタログを通じて作成されたテーブルの varbinary および binary 型の長さに、ソーステーブルに対して追加する文字数。
いいえ
デフォルトでは、2 文字が追加されます。
table.key-type
カタログを通じて作成するテーブルのタイプ。
いいえ
有効値:
PRI: プライマリキーテーブル。
UNI: ユニークキーテーブル。
AGG: 集計テーブル。
DUP: 複製キーテーブル。
デフォルト値は PRI です。
table.keys
カタログを通じて作成されたテーブルのキーフィールド。
いいえ
デフォルト値なし。
table.distribution-keys
カタログを通じて作成されたテーブルの分散キーフィールド。
いいえ
デフォルト値なし。
table.enable-null-primary-key
下流の null 値許容列をプライマリキーにマッピングすることを許可します。
いいえ
有効値:
false (デフォルト)
true
重要このパラメーターは、StarRocks の null 値許容プライマリキー列を null 値非許容として扱うように強制します。予期せぬ問題を避けるため、上流の入力データに NULL 値が含まれていないことを確認してください。
VVR 8 以前
パラメーター
説明
必須
注意
catalogname
StarRocks カタログの名前。
はい
名前には、小文字 (a-z) と数字 (0-9) のみ使用できます。大文字や、ハイフン (-)、アンダースコア (_) などの特殊文字は使用できません。
type
カタログのタイプ。
はい
値を starrocks に設定します。
endpoint
StarRocks FE のエンドポイント。
はい
FE の IP アドレスと JDBC ポートを指定します。フォーマットは
jdbc:mysql://ip:portを使用します。ポートは通常 9030 です。username
StarRocks にアクセスするためのユーザー名。
はい
なし。
password
StarRocks にアクセスするためのパスワード。
はい
パスワードの漏洩を防ぐため、プレーンテキストパスワードの代わりに変数を使用してください。詳細については、「プロジェクト変数」をご参照ください。
dbname
アクセスするデフォルトの StarRocks データベースの名前。
はい
なし。
カタログを作成するコードを選択し、行番号の横に表示される [実行] ボタンをクリックします。

StarRocks カタログの表示
StarRocks カタログが正常に設定された後、次の手順に従ってそのメタデータを表示します。
Data Management ページに移動します。
対象のワークスペースの [操作] 列で、[コンソール] をクリックします。
[Data Management] をクリックします。
[カタログリスト] ページで、[カタログ名] と [タイプ] を表示できます。
説明カタログ内のデータベースとテーブルを表示するには、[表示] をクリックします。
StarRocks カタログの使用
StarRocks テーブルからのデータ読み取り
VVR 11 以降
INSERT INTO ${other_sink_table}
SELECT ...
FROM `${catalog_name}`.`${db_name}`.`${table_name}`VVR 8 以前
OPTIONS ヒントは必須です。このヒントを使用して、StarRocks ソーステーブルを読み取るためのパラメーターを設定します。
INSERT INTO ${other_sink_table}
SELECT ...
FROM `${catalog_name}`.`${db_name}`.`${table_name}`
/*+
OPTIONS('connector' = 'starrocks', 'jdbc-url' = 'jdbc:mysql://ip:port', 'scan-url' = 'ip:port')
*/StarRocks 結果テーブルへのデータ書き込み
VVR 11 以降
INSERT INTO `${catalog_name}`.`${db_name}`.`${table_name}`
SELECT ...
FROM ${other_source_table}VVR 8 以前
OPTIONS ヒントは必須です。このヒントを使用して、StarRocks 結果テーブルに書き込むためのパラメーターを設定します。
INSERT INTO `${catalog_name}`.`${db_name}`.`${table_name}`
/*+
OPTIONS('connector' = 'starrocks', 'jdbc-url' = 'jdbc:mysql://ip:port', 'load-url' = 'ip:port', 'sink.buffer-flush.interval-ms' = '5000','sink.properties.row_delimiter' = '\x02',
'sink.properties.column_separator' = '\x01')
*/
SELECT ...
FROM ${other_source_table}CTAS および CDAS の宛先カタログとしての使用
use catalog sr_catalog;
CREATE TABLE IF NOT EXISTS `${table_name}`
WITH (
...
) AS TABLE ${other_source_table};
CREATE DATABASE IF NOT EXISTS `${db_name}`
WITH (
...
) AS DATABASE ${other_source_database};詳細については、「Flink で CTAS 文を使用して MySQL から StarRocks にデータを同期する」をご参照ください。
StarRocks カタログの削除
StarRocks カタログは、UI または SQL コマンドを使用して削除できます。UI を使用することを推奨します。
UI の使用
Data Management ページに移動します。
管理するワークスペースを見つけ、[操作] 列の [コンソール] をクリックします。
[Data Management] をクリックできます。
[カタログリスト] ページで、対象のカタログを見つけ、[操作] 列の [削除] をクリックします。
表示されるメッセージで、[削除] をクリックします。
左側の [メタデータ] エリアで、対象のカタログが削除されたことを確認します。
SQL コマンドの使用
[データクエリ] ページのテキストエディターで、次のコマンドを入力します。
DROP CATALOG `<catalog name>`;コマンドで、
<catalog name>をご利用の StarRocks カタログの名前に置き換えます。重要StarRocks カタログを削除しても、現在実行中のジョブには影響しません。ただし、未公開のジョブや、一時停止してから再開する必要があるジョブには影響します。注意して進めてください。
カタログを削除するコマンドを右クリックし、[実行] を選択します。
左側の [メタデータ] エリアで、対象のカタログが削除されたことを確認します。