AnalyticDB for MySQL カタログを設定すると、Realtime Compute for Apache Flink コンソールから AnalyticDB for MySQL インスタンス内のテーブルに直接アクセスできます。 このトピックでは、AnalyticDB for MySQL カタログを作成、表示、使用、削除する方法について説明します。
背景
AnalyticDB for MySQL カタログには、以下の機能があります:
-
AnalyticDB for MySQL インスタンスのテーブルに直接アクセスできます。 DDL ステートメントを使用して AnalyticDB for MySQL テーブルを手動で登録する必要がないため、開発効率と正確性が向上します。
-
AnalyticDB for MySQL カタログのテーブルは、Flink SQL ジョブでディメンションテーブルおよび結果テーブルとして使用できます。
このトピックでは、以下の操作を実行して AnalyticDB for MySQL カタログを管理する方法について説明します。
制限事項
-
AnalyticDB for MySQL カタログをサポートするのは、VVR 6.0.2 以降の Realtime Compute for Apache Flink のみです。
-
カタログは作成後に変更できません。
-
データテーブルの照会のみ可能です。データベースやテーブルの作成、変更、削除はできません。
-
テーブルは、ディメンションテーブルおよび結果テーブルとしてのみ使用でき、ソーステーブルとしては使用できません。
-
カタログは SSL 接続をサポートしていません。SSL 接続を使用するには、一時テーブルを定義して AnalyticDB for MySQL にアクセスします。
AnalyticDB for MySQL カタログの作成
-
AnalyticDB for MySQL カタログを作成するには、[Scripts] エディターでステートメントを入力します。
CREATE CATALOG <catalogName> WITH ( 'type' = 'adb3.0', 'hostName' = '<hostname>', 'port' = '<port>', 'userName' = '<username>', 'password' = '<password>', 'defaultDatabase' = '<dbname>' );パラメーター
タイプ
説明
必須
catalogName
String
AnalyticDB for MySQL カタログの名前。
はい
type
String
カタログのタイプ。値は
adb3.0に固定されています。はい
hostName
String
AnalyticDB for MySQL インスタンスの IP アドレスまたはホスト名
はい
port
Integer
AnalyticDB for MySQL インスタンスのポート番号。デフォルト: 3306。
いいえ
userName
String
AnalyticDB for MySQL インスタンスのユーザー名。
はい
password
String
AnalyticDB for MySQL インスタンスのパスワード。
はい
defaultDatabase
String
デフォルトの AnalyticDB for MySQL データベースの名前。
はい
-
ステートメントを選択し、コードの左側にある[実行]をクリックします。
CREATE CATALOG <catalogName> WITH ( 'type' = 'adb3.0', 'hostName' = '<hostname>', 'port' = '<port>', 'userName' = '<username>', 'password' = '<password>', 'defaultDatabase' = '<dbname>' );
AnalyticDB for MySQL カタログの表示
AnalyticDB for MySQL カタログが設定されたら、AnalyticDB for MySQL のメタデータを表示するには、次の手順に従います。
-
カタログページに移動します。
-
対象のワークスペースの[アクション] 列で、[コンソール] をクリックします。
-
左側のナビゲーションペインで、[カタログ] をクリックします。
-
[カタログリスト] ページで、[名前] と [タイプ] を確認します。
説明カタログ内のデータベースとテーブルを表示するには、[表示] をクリックします。
AnalyticDB for MySQL カタログを使用する
-
AnalyticDB for MySQL カタログのテーブルをディメンションテーブルとして使用する
INSERT INTO ${other_sink_table} SELECT ... FROM ${other_source_table} AS e JOIN `${adb_mysql_catalog}`.`${db_name}`.`${table_name}` FOR SYSTEM_TIME AS OF e.proctime AS w ON e.id = w.id; -
AnalyticDB for MySQL カタログのテーブルを結果テーブルとして使用する
INSERT INTO `${adb_mysql_catalog}`.`${db_name}`.`${table_name}` SELECT ... FROM ${other_source_table}AnalyticDB for MySQL カタログのテーブルを使用する際に追加の WITH パラメーターを指定する必要がある場合は、SQL ヒントを使用してパラメーターを追加します。パラメーターの詳細については、「WITH パラメーター」をご参照ください。次の例では、AnalyticDB for MySQL 3.0 の結果テーブルに replaceMode パラメーターを追加する方法を示します。
INSERT INTO `${adb_mysql_catalog}`.`${db_name}`.`${table_name}` /*+ OPTIONS('replaceMode'='true') */ SELECT ... FROM ${other_source_table}
AnalyticDB for MySQL カタログの削除
AnalyticDB for MySQL カタログを削除しても、実行中のジョブには影響しません。ただし、削除されたカタログのテーブルを使用するジョブは、送信または再起動されると、「table not found」エラーで失敗します。慎重に実行してください。
AnalyticDB for MySQL カタログは、UI または SQL ステートメントを使用して削除できます。UI を使用して AnalyticDB for MySQL カタログを削除することをお勧めします。
UI
-
カタログページに移動します。
-
対象のワークスペースの [操作] 列で、[コンソール] をクリックします。
-
左側のナビゲーションペインで、[カタログ] をクリックします。
-
[カタログリスト] ページで、削除するカタログを見つけ、[アクション] 列の [削除] をクリックします。
-
「確認」ダイアログボックスで、[削除] をクリックします。
-
左側の [カタログ] ペインで、カタログが削除されたことを確認します。
SQL ステートメント
-
スクリプトエディターで、次のステートメントを入力します。
DROP CATALOG <catalogName>;<catalogName> を、削除したい AnalyticDB for MySQL カタログの名前に置き換えてください。
-
ステートメントを選択して右クリックし、[実行] を選択します。
-
左側の [カタログ] ペインで、カタログが削除されていることを確認します。