すべてのプロダクト
Search
ドキュメントセンター

Lindorm:Flink を使用した LindormTable へのアクセス

最終更新日:Aug 28, 2026

Apache Flink を LindormTable に接続し、Flink ジョブ内で Lindorm テーブルをディメンションテーブルまたは結果テーブルとして使用できます。これらのテーブルには、Flink SQL または Flink DataStream でアクセスできます。

背景情報

Lindorm LindormTable を Flink のディメンションテーブルまたは結果テーブルとして使用し、Flink SQL または Flink DataStream で LindormTable にアクセスできます。

接続方法の選択

LindormTable のテーブルには、作成方法に基づいて、HBase テーブル (HBase API を使用して作成・書き込みを行うテーブル) と SQL テーブル (Lindorm SQL を使用して作成・書き込みを行うテーブル) の 2 種類があります。これら 2 種類のテーブルへのアクセスには異なるインターフェースが必要です。そのため、Flink ジョブを作成する前に、コネクタタイプを決定し、それに基づいて LindormTable の接続アドレスを決定する必要があります。

アクセスするテーブルタイプの決定

Lindorm では、Lindorm SQL を使用して、開発中の Flink ジョブがアクセスする LindormTable のタイプを判断できます。

  1. lindorm-cli (または Lindorm Insight、DMS を直接使用して) を使用して、Lindorm ワイドテーブルエンジンに接続します。

  2. 次の SQL ステートメントを実行して、テーブルの IS_HBASE_LIKE 属性を確認します。

    • 属性値が TRUE の場合、そのテーブルは HBase テーブルです。

    • 属性値が FALSE の場合、そのテーブルは SQL テーブルです。

    SHOW TABLE VARIABLES FROM table_name LIKE 'IS_HBASE_LIKE';
説明

コネクタタイプの選択

使用する Flink 製品に応じて、LindormTable へのアクセスに使用するコネクタを決定します。

テーブルタイプ

コミュニティ Flink

Realtime Compute for Apache Flink

HBase テーブル

オープンソース HBase コネクタ

(ディメンションテーブルおよび結果テーブルとしてサポート)

クラウドネイティブマルチモデルデータベース Lindorm コネクタ

(ディメンションテーブルおよび結果テーブルとしてサポート)

SQL テーブル

オープンソース JDBC コネクタ

(結果テーブルとしてサポート)

クラウドネイティブマルチモデルデータベース Lindorm コネクタ

(ディメンションテーブルおよび結果テーブルとしてサポート)

説明

Realtime Compute for Apache Flink は、Alibaba Cloud 上のマネージド Flink サービスです。詳細については、「Realtime Compute for Apache Flink」をご参照ください。なお、Alibaba Cloud ECS 上でオープンソース Flink を使用して構築した Flink クラスターは、上記の表ではコミュニティ Flink に分類されます。

LindormTable の接続情報の取得

  • シナリオ 1: オープンソースの HBase コネクターまたはクラウドネイティブなマルチモデルデータベース Lindorm コネクターの使用
    このシナリオでは、接続アドレスはワイドテーブルエンジンのHBase Java API アクセスアドレス (VPC) である必要があります。
    Lindorm インスタンスの詳細ページで、左側のメニューにある[データベース接続]をクリックし、[ワイドテーブルエンジン] タブを選択します。[HBase 互換アドレスによる接続] エリアで、ld-<instance-ID>-proxy-lindorm.lindorm.rds.aliyuncs.com:30020 形式の VPC アドレスを取得します。[MySQL 互換アドレスによる接続] エリアで、ld-<instance-ID>-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060 形式の MySQL 互換アドレスを取得します。

  • シナリオ 2: JDBC コネクタを使用する場合
    このシナリオでは、接続アドレスはワイドテーブルエンジンの MySQL 互換アドレス (VPC) である必要があります。
    Lindorm インスタンスの詳細ページで、左側のナビゲーションペインから [データベース接続] をクリックし、[ワイドテーブルエンジン] タブを選択します。[MySQL 互換アドレスを介した接続] エリアで、ld-<instance-ID>-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060 形式の MySQL 互換アドレスを取得します。

説明
  • Flink ジョブが新しく作成された Lindorm ユーザーを使用して LindormTable にアクセスする場合は、そのユーザーが Flink テーブルに対する読み取りおよび書き込み権限を持っていることを確認してください。権限の付与方法については、「指定されたユーザーへの権限の付与」をご参照ください。

  • Lindorm ワイドテーブルの各種接続アドレスの詳細については、「ワイドテーブルエンジンの接続アドレスの表示」をご参照ください。

Flink ジョブから LindormTable にアクセスする方法

選択したリアルタイムコンピューティングフレームワークの一般的なアプローチで開発できます。ジョブで LindormTable にアクセスするには、選択したコネクタに基づいて以下のドキュメントを参照し、コンピューティングジョブから LindormTable にアクセスできるように設定してください。

前提条件

  • コミュニティ Flink を使用して LindormTable にアクセスするジョブを開発する場合

  • Realtime Compute for Apache Flink を使用して LindormTable にアクセスするジョブを開発する場合、ワイドテーブルエンジンのバージョン制限はありません。

  • Flink クラスターが配置されている環境が Lindorm インスタンスとネットワーク接続されており、クライアント IP アドレスが Lindorm ホワイトリストに追加されていることを確認してください。ホワイトリストへの IP アドレスの追加方法については、「ホワイトリストの設定」をご参照ください。

コミュニティ Flink を使用したジョブ開発

オープンソース HBase コネクタ

重要

コミュニティ Flink を使用して HBase テーブルにアクセスするジョブを開発する際、インターネット経由でテーブルにアクセスする場合、またはターゲット Lindorm インスタンスが Lindorm シングルノードインスタンスの場合は、後続の操作を実行する前に SDK をアップグレードし、設定を変更する必要があります

詳細については、「HBase Java API を使用した LindormTable への接続と使用」のステップ 1 をご参照ください。

オープンソース HBase コネクタを使用してディメンションテーブルと結果テーブルを作成する方法については、「HBase コネクタドキュメント」をご参照ください。

オープンソース JDBC コネクタ

オープンソース JDBC コネクタを使用して LindormTable にアクセスする場合、現在は LindormTable を結果テーブルとしてのみ使用できます。全体的な使用方法については、JDBC コネクタ公式ドキュメントをご参照ください。ただし、以下の点に特に注意してください。

  • 依存関係の要件
    公式ドキュメントに記載の依存パッケージのバージョンは広範ですが、JDBC コネクタで LindormTable にアクセスする場合、使用できるバージョンは現在、以下のリストに記載されているものに限定されます。

    • flink-connector-jdbc-core-4.0.0-2.0.jar

    • flink-connector-jdbc-mysql-4.0.0-2.0.jar

    • mysql-connector-j-8.3.0.jar

    MySQL JDBC ドライバの依存パッケージは、コミュニティからダウンロードできます。

  • JDBC コネクタパラメータ
    ソーステーブルおよびディメンションテーブルとしての使用はサポートされていないため、これらに関連するパラメータはサポートされていません (scan.fetch-size などの scan プレフィックスを持つパラメータや、lookup.cache などの lookup プレフィックスを持つパラメータなど)。
    一部の JDBC コネクタパラメータの推奨事項:

    • url: 「Java JDBC API を使用したアプリケーションの開発」に従って設定することを推奨します。

    • username: Lindorm インスタンスで作成されたユーザー名を使用します。

    • password: ユーザー名のパスワード。

    • connector、table-name: JDBC コネクタコミュニティの推奨事項に従います。

    • sink パラメータ: ジョブの実際の状況に基づいて微調整します。

  • データ型マッピング
    Flink データ型と Lindorm データ型間のマッピングは、通常 MySQL のデータ型マッピングに準拠します (JDBC コネクタのデータ型マッピングセクションを参照)。ただし、Lindorm の一部のデータ型は MySQL と一致しません。たとえば、JDBC コネクタでサポートされている以下の MySQL 型は、Lindorm ではサポートされていません。

    • MEDIUMINT 型

    • DATETIME 型

    • BIGINT UNSIGNED 以外の UNSIGNED 型

次の例では、Flink SQL を使用して、JDBC コネクタ経由で LindormTable にアクセスするジョブを定義します。この例では、Lindorm ワイドテーブルエンジンで testflink という名前のテーブルが既に定義されていることを前提としています。

# Flink テーブルを作成し、ジョブを開始します
CREATE TABLE source_table(
    c1 INT,
    c2 STRING
) WITH (
  'connector' = 'datagen',
  'rows-per-second' = '2',
  'fields.c2.length' = '5',
  'fields.c1.min' = '1',
  'fields.c1.max' = '100'
);


CREATE TABLE sink_table(
    c1 INT,
    c2 STRING
) WITH (
    'connector' = 'jdbc',
    'url' = 'jdbc:mysql://ld-xxxxx-proxy-lindorm.lindorm.rds.aliyuncs.com:33060/default?sslMode=disabled&allowPublicKeyRetrieval=true&useServerPrepStmts=true&useLocalSessionState=true&rewriteBatchedStatements=true&cachePrepStmts=true&prepStmtCacheSize=300&prepStmtCacheSqlLimit=50000000',
    'username' = 'root',
    'password' = 'root',
    'table-name' = 'testflink'
);


INSERT INTO sink_table SELECT * FROM source_table;

Realtime Compute for Apache Flink を使用したジョブ開発

クラウドネイティブマルチモデルデータベース Lindorm コネクタ