Alibaba Cloud Realtime Compute for Apache Flink は、Apache Flink をベースに構築された、エンタープライズグレードの高性能なリアルタイムビッグデータ処理プラットフォームです。Hologres は Flink と緊密に統合されています。この統合により、ストリーミングデータの書き込みとクエリがリアルタイムで可能になり、リアルタイムデータウェアハウスを効率的に構築できます。
サービスタイプ
Realtime Compute for Apache Flink はデータを保存しません。外部ストレージシステムのデータを処理し、次のデータストレージタイプをサポートしています:
-
ソーステーブル
ソーステーブルは Flink ジョブに入力データを提供します。Hologres テーブルをソーステーブルとして使用する場合、デフォルトではフルテーブルスキャンによるバッチモードでデータがインポートされます。Hologres Binlog をソースとして使用することで、ストリーミングモードでの読み取りも可能です。
-
ディメンションテーブル
ディメンションテーブルは通常、キーによるポイントルックアップに使用されます。そのため、Hologres テーブルをディメンションテーブルとして使用する場合は、行指向ストレージの使用を推奨します。JOIN 条件では、テーブルの完全なプライマリキーを使用する必要があります。
-
結果テーブル
結果テーブルは、Flink の計算結果の出力データを受信して保存します。下流での利用に向けて、読み取りおよび書き込みインターフェイスを提供します。
Realtime Compute for Apache Flink は Hologres と深く統合されており、次のエンタープライズレベルの高度な機能を提供します:
-
Hologres Binlog のコンシューム
この機能を使用すると、メッセージキューパターンを使用して Hologres テーブルの変更ログをコンシュームできます。
-
Flink カタログ
Hologres のメタデータを Flink のカタログとしてインポートできます。これにより、テーブルを手動で登録することなく、Fully Managed Flink コンソールから Hologres のメタデータを直接読み取れます。この機能により、開発効率が向上し、スキーマの正確性が確保されます。
-
スキーマエボリューション
Fully Managed Flink はスキーマエボリューションをサポートしています。Flink が JSON データを読み取る際に、データ型を自動的に解析して対応するテーブル列を作成できるため、データモデルを動的に進化させることができます。
次の表に、Hologres がサポートする Flink のサービスタイプと、その機能を示します。
|
サービスタイプ |
データストレージタイプ |
高度な機能 |
説明 |
||||
|
ソーステーブル |
結果テーブル |
ディメンションテーブル |
Hologres Binlog |
Flink カタログ |
スキーマエボリューション |
||
|
Semi-managed Flink |
行指向ストレージと列指向ストレージをサポートしています。Binlog ソーステーブルの場合は、行指向ストレージまたはハイブリッド行列ストレージの使用を推奨します。 |
行指向ストレージと列指向ストレージをサポートしています。 |
行指向ストレージまたはハイブリッド行列ストレージの使用を推奨します。 |
サポート |
サポート |
サポート |
EMR Studio 開発プラットフォームを使用します。 |
|
専用モードの Blink (提供終了) |
行指向ストレージと列指向ストレージをサポートしています。Binlog ソーステーブルの場合は、行指向ストレージまたはハイブリッド行列ストレージの使用を推奨します。 |
行指向ストレージと列指向ストレージをサポートしています。 |
行指向ストレージまたはハイブリッド行列ストレージの使用を推奨します。 |
Hologres V0.8 は行指向ストレージのみをサポートしています。Hologres V0.9 以降では、行指向ストレージと列指向ストレージの両方をサポートしています。行指向ストレージの使用を推奨します。 |
未サポート |
未サポート |
Bayes 開発プラットフォームを使用します。 Fully Managed Flink の使用を推奨します。 |
|
Apache Flink V1.10 |
未サポート |
行指向ストレージと列指向ストレージをサポートしています。 |
未サポート |
未サポート |
未サポート |
未サポート |
- |
|
Apache Flink V1.11 以降 |
未サポート |
行指向ストレージと列指向ストレージをサポートしています。 |
行指向ストレージの使用を推奨します。 |
未サポート |
未サポート |
未サポート |
Hologres コネクターのコードは Apache Flink V1.11 以降でオープンソース化されています。詳細については、alibabacloud-hologres-connectors をご参照ください。 |
|
Apache Flink V1.13 以降 |
バッチソーステーブルのみ |
行指向ストレージと列指向ストレージをサポートしています。 |
行指向ストレージの使用を推奨します。 |
未サポート |
未サポート |
未サポート |
Hologres コネクターのコードは Apache Flink V1.11 以降でオープンソース化されています。詳細については、alibabacloud-hologres-connectors をご参照ください。 |
Hologres コネクターのリリースノート
|
Flink バージョン |
VVR (Ververica Runtime) バージョン |
Hologres バージョン |
更新情報 |
リファレンス |
|
1.20 |
11.6 |
3.2.x 4.0.x 4.1.x |
ソーステーブル:
カタログ:
全般:
|
|
|
1.20 |
11.5 |
3.2.x 4.0.x 4.1.x |
ソーステーブル:
ディメンションテーブル:
全般:
バグ修正:
|
|
|
1.20 |
11.4 |
3.2.x 4.0.x 4.1.x |
シンクテーブル:
ディメンションテーブル:
バグ修正:
|
|
|
1.20 |
11.3 |
3.1.x 3.2.x 4.0.x |
ソーステーブル:
シンクテーブル:
全般:
バグ修正:
|
|
|
1.20 |
11.2 |
3.1.x 3.2.x 4.0.x |
シンクテーブル:
全般:
バグ修正:
|
|
|
1.20 |
11.1 |
3.1.x 3.2.x |
ソーステーブル:
シンクテーブル:
ディメンションテーブル:
全般:
|
|
|
1.20 |
11.0 |
3.1.x 3.2.x |
全般:
ソーステーブル:
|
|
|
1.17 |
8.0.11 |
2.1.x 2.2.x 3.0.x |
ソーステーブル:
シンクテーブル:
全般:
バグ修正:
|
|
|
1.17 |
8.0.9~8.0.10 |
2.1.x 2.2.x 3.0.x |
|
|
|
1.17 |
8.0.8 |
2.1.x 2.2.x |
シンクテーブル:
|
|
|
1.17 |
8.0.7 |
2.1.x |
ディメンションテーブル:
全般:
|
|
|
1.17 |
8.0.6 |
2.1.x |
ソーステーブル:
全般:
|
|
|
1.17 |
8.0.5 |
2.0.x 2.1.x |
ソーステーブル:
シンクテーブル:
全般:
|
|
|
1.17 |
8.0.4 |
2.0.x 2.1.x |
ソーステーブル:
全般:
|
|
|
1.17 |
8.0.3 |
2.0.x 2.1.x |
全般:
|
|
|
1.15 |
6.0.7 |
|
|
|
|
1.15 |
6.0.6 |
1.3.x |
ソーステーブル:
|
|
|
1.15 |
6.0.5 |
1.3.x |
|
|
|
1.15 |
6.0.3~6.0.4 |
1.3.x |
ソーステーブル:
シンクテーブル: Fixed Copy モードでのデータ書き込みがサポートされるようになりました。Fixed Copy は Hologres V1.3 の新機能です。JDBC モードと比較して、Fixed Copy モードはストリーミングを介してより高いスループットとより低いデータレイテンシーを提供し、バッチ処理を排除することでクライアントのメモリ消費を削減します。 Hologres カタログ:
sdkMode パラメーター:Hologres のテーブルの種類ごとに異なるモードが利用可能です。sdkMode パラメーターは、モード選択を統合するために使用されるようになりました。 |
|
|
1.13 |
4.0.18 |
1.1 以降 |
シンクテーブルのメトリクスを報告すると書き込みパフォーマンスが低下する問題が修正されました。 |
|
|
1.13 および 1.15 |
4.0.15 および 6.0.2 |
1.1 以降 |
ソーステーブル:
ディメンションテーブル: Hologres ディメンションテーブルの非同期リクエストタイムアウト ( シンクテーブル:
|
|
|
1.13 |
4.0.13 |
1.1 以降 |
|
|
|
1.13 |
4.0.11 |
0.10 以降 |
CTAS と CDAS がサポートされるようになりました。 |
|
|
1.13 |
4.0.8 |
0.10 以降 |
シンクテーブル、ソーステーブル、ディメンションテーブルで Hologres カタログがサポートされるようになりました。 |
|
|
1.13 |
3.0.0 |
0.9 以降 |
Hologres からのリアルタイムデータ消費がサポートされるようになりました。 |
既知の問題と修正
-
問題と修正に関する注意点
-
各問題の影響を受けるバージョンは明確に指定されています。記載されている範囲外のバージョンは影響を受けません。
-
影響を受けるバージョンが「N/A」とマークされている場合、その問題はコネクタではなく Hologres エンジンの不具合である可能性があります。
-
-
重大度レベル
-
P0 (クリティカル):即時のアップグレードを推奨します。この問題が発生すると、クエリの正確性や書き込み成功率など、本番運用に影響を与える可能性があります。
-
P1 (高):潜在的な問題を防止するためにアップグレードを推奨します。
-
P2 (中):アップグレードは任意です。これらの問題は断続的に発生しますが、回避策やジョブの再起動で解決できます。
-
|
重大度 |
説明 |
影響を受けるバージョン |
修正済みバージョン |
解決策 |
|
P0 |
結果テーブルの列のサブセットに書き込む際、書き込まれないフィールドに時間関連のデフォルト値 ( |
11.0-11.5 |
N/A |
Flink 側の |
|
P0 |
Binlog のコンシューム中に、物理列とメタデータ列が |
8.0.11、11.0-11.4 |
11.5 |
バージョン 11.5 以降にアップグレードして |
|
P1 |
Binlog の消費中に、カラムプルーニングによってデータが誤った列に読み込まれることがあります。これは、holo-client がカラムプルーニングを処理する際に、予期しない列を取得する可能性があるためです。 |
11.3-11.5 |
影響を受けるすべてのバージョン (11.3-11.5) に対してホットフィックスがリリースされています。 |
この問題はホットフィックスで対処されているため、発生する可能性は低いです。DataStream ジョブの場合は、最新のコネクタバージョンを使用してください。 |
|
P2 |
ジョブを停止したときに、1対多のディメンションテーブルのスキャナーが正しく閉じません。これにより、リソースリークやシャットダウン時のジョブタイムアウトが発生する可能性があります。この問題は、holo-client の内部スキャナーシャットダウンロジックの問題が原因です。 |
11.3 より前のバージョン |
11.4 |
バージョン 11.4 以降にアップグレードしてください。 |
|
P1 |
チェックアンドプット機能を使用しているときに、 |
8.0.11-11.4 |
11.5 |
バージョン 11.5 以降にアップグレードしてください。または、 |
|
P2 |
ジョブの実行中にテーブルがドロップされて再作成された場合、コネクタはチェックポイントからの再開に失敗します。 |
11.0-11.2 |
11.3 |
テスト環境では、この問題を回避するためにバージョン 11.3 以降にアップグレードしてください。注:Binlog の消費中にテーブルをドロップするとデータの正確性に影響するため、本番環境では、Binlog の消費中にテーブルを再構築することは避けてください。 |
|
P1 |
JDBC Binlog を介して RoaringBitmap データを読み取ると失敗し、解析例外がスローされます。 |
11.0-11.2 |
11.3 |
バージョン 11.3 以降にアップグレードしてください。 |
|
P1 |
物理的にパーティション化されたテーブルから消費する際、シャードにデータがない場合、コネクタはステートのログシーケンス番号 (LSN) を誤って 0 に初期化します。これにより、このステートからジョブが再開されるとデータが失われます。 |
8.0.10 より前のバージョン、および 11.0~11.2 |
8.0.11、11.3 |
バージョン 8.0.11、または 11.3 以降にアップグレードしてください。 |
|
P1 |
null 要素を含む |
11.0-11.1 |
11.2 |
バージョン 11.2 以降にアップグレードしてください。または、アップストリームの |
|
P1 |
パーティション作成サフィックスと動的パーティション間の競合により、パーティションの作成が失敗します。 |
11.0-11.2 |
11.3 |
バージョン 11.3 以降にアップグレードしてください。 |
|
P2 |
ダーティデータとは無関係の例外がダーティデータポリシーをトリガーし、有効な例外が誤って処理される (たとえば、サイレントに破棄される) ことがあります。 |
11.0-11.1 |
11.2 |
バージョン 11.2 以降にアップグレードしてください。 |
|
P1 |
全量・増分統合ソーステーブルの場合、JDBC Binlog は LSN+1 から消費を開始します。現在の LSN がすでにチェックポイントにある場合、そこから再開すると 1 レコードがスキップされる可能性があります。 |
8.0.10 以前のバージョン |
8.0.11 |
バージョン 8.0.11 にアップグレードしてください。 |
|
P2 |
CTAS シナリオで、列のドロップと型の変更が同じ操作で発生した場合、型の正規化エラーによりスキーマの変更が失敗します。 |
8.0.10 以前のバージョン |
8.0.11 |
バージョン 8.0.11 にアップグレードしてください。または、同じ操作で列をドロップして型を変更しないようにします。 |
|
P2 |
カタログディメンションテーブルを使用すると、Binlog パラメーターのファクトリ検証によって誤検知の例外が発生します。 |
8.0.10 以前のバージョン |
8.0.11 |
バージョン 8.0.11 にアップグレードしてください。 |
|
P2 |
複数テーブルのシナリオでは、過剰な数の JDBC ポーリング要求により SQL Gateway がタイムアウトします。 |
11.0-11.5 |
11.6 |
バージョン 11.6 にアップグレードしてください。または、1 つのジョブ内の Hologres テーブルの数を減らします。 |
|
P2 |
FixedFE モードを選択したときに、テーブルに FixedFE でサポートされていないデータ型が含まれている場合、接続は自動的に FE 接続にダウングレードされず、書き込みまたはクエリの例外が発生します。 |
11.0-11.2 |
11.3 |
バージョン 11.3 以降にアップグレードしてください。または、手動で FE 接続モードを指定します。 |
|
P1 |
JDBC モードで Binlog を消費する際、「Binlog Convert Failed」例外が発生したり、一部のシャードからのデータ読み取りが停止したりすることがあります。これは、Hologres インスタンスのゲートウェイがクライアントにバックエンドのタイムアウト例外を返す際に問題があり、読み取り操作がハングしたり、解析エラーで失敗したりするためです。 |
N/A |
N/A |
この問題は、ジョブのバックプレッシャーが高い場合に発生しやすくなります。データ読み取りが停止した場合は、ジョブを再起動し、最新のチェックポイントから再開してください。 この問題を完全に解決するには、Hologres インスタンスを V2.2.21 以降にアップグレードしてください。 |
|
P2 |
ジョブのデプロイが遅い、またはタイムアウトします。スレッドダンプを分析すると、プロセスが |
N/A |
N/A |
この問題には複数の原因が考えられます。以下の手順でトラブルシューティングしてください:
|
|
P0 |
FixedFE モード (コネクタの |
N/A |
N/A |
アップストリームの文字列の有効性を保証できない場合は、JDBC モードでデータを書き込む必要があります。 また、結果テーブルに または、Hologres インスタンスを V3.0 以降にアップグレードすると、引き続き |
|
P1 |
JDBC ディメンションテーブルで 1 対多の結合を実行すると、Flink タスクで高いメモリ使用量や Out Of Memory (OOM) エラーが発生することがあります。 |
N/A |
N/A |
Hologres V1.3 では、 この問題を完全に解決するには、Hologres インスタンスを V2.0 以降にアップグレードしてください。 |
|
P1 |
Binlog ジョブがステートフルリカバリー中に |
8.0.4 |
8.0.9 |
バージョン 8.0.9 以降、テーブル ID のチェックは強制されなくなりました。代わりに警告がログに記録され、ジョブは最新のステートから再開できます。ただし、Binlog ジョブの実行中にテーブルを再構築すると、以前のすべての Binlog データが失われるため、この操作は避けてください。 |
|
P2 |
ジョブの実行中にバックプレッシャーが発生することがあります。スレッドダンプを分析すると、実行プールが |
8.0.5 |
8.0.9 |
コネクタのバージョンをアップグレードしてください。 |
|
P2 |
ソーステーブルで |
8.0.6 以前のバージョン |
8.0.7 |
コネクタのバージョンをアップグレードするか、増分消費の開始時刻を指定してください。 |
|
P1 |
ディメンションテーブルに多数のフィールドが含まれている場合、ジョブのデプロイがタイムアウトします。 |
8.0.6 |
8.0.7 |
コネクタのバージョンをアップグレードしてください。 |
|
P0 |
バッチソーステーブルで 説明
この問題は、全量・増分統合のソーステーブルや Binlog ソーステーブルには影響しません。 |
8.0.5 以前のバージョン |
8.0.6 |
コネクタのバージョンをアップグレードしてください。 |
|
P0 |
FixedFE モード (コネクタの |
8.0.5 以前のバージョン |
なし |
アップストリームの |
|
P1 |
JDBC ディメンションテーブルで 1 対多の結合を実行すると、接続障害などの内部例外が正しくスローされません。これにより、非同期結合ノードでバックプレッシャーが発生し、データフローが停止する可能性があります。この問題はまれに発生します。 |
6.0.7 以前のバージョン |
8.0.3 |
コネクタのバージョンをアップグレードしてください。一時的な解決策としてジョブを再起動することもできます。 |
|
P1 |
JDBC モードで Binlog データを消費すると、メモリリークが発生します。これは、ジョブの開始時に消費率が高く、その後継続的に低下するという形で現れることがあります。 |
6.0.7 より前のバージョン |
6.0.7 |
コネクタのバージョンをアップグレードしてください。DataStream ジョブの場合は、バージョン 6.0.7-1 の依存関係を使用する必要があります。 |
|
P0 |
JDBC モードで書き込みを行う際、スケジュールされたフラッシュ ( |
6.0.6 以前のバージョン |
6.0.7 |
この問題は、トラフィックが少ない場合に発生しやすくなります。コネクタのバージョンをアップグレードするか、 |
|
P2 |
JDBC モードで Binlog データを消費する際にスロット名を設定しないと、システムが自動的に作成します。テーブル名またはスキーマ名に特殊文字が含まれている場合、自動生成されたスロット名が無効になり、構文エラーが発生します。 |
6.0.6 |
6.0.7 |
コネクタのバージョンをアップグレードしてください。DataStream ジョブの場合は、バージョン 6.0.7-1 の依存関係を使用する必要があります。 |
|
P1 |
同じジョブ内の異なる Hologres インスタンスまたはデータベースが同じ |
6.0.6 以前のバージョン |
6.0.7 |
同じジョブで使用される各 Hologres インスタンスまたはデータベースに、異なる |
|
P1 |
ディメンションテーブルに |
6.0.6 |
6.0.7 |
コネクタのバージョンをアップグレードしてください。 |
|
P0 |
Hologres ソーステーブルでは、フィルタープッシュダウンがデフォルトで有効になっています。ただし、ジョブが Hologres ディメンションテーブルも使用し、書き込み DML にディメンションテーブルの主キー以外のフィールドに対するフィルターが含まれている場合、そのフィルターはディメンションテーブルにも誤ってプッシュダウンされます。これにより、ディメンションテーブルの結合結果が不正になる可能性があります。 |
6.0.3-6.0.5 |
6.0.6 |
コネクタのバージョンをアップグレードしてください。 |
|
P0 |
複数の結果テーブルが異なる |
6.0.2 以前のバージョン |
6.0.3 |
すべての結果テーブルの |
|
P1 |
Binlog ソーステーブルの DDL で |
6.0.2 |
6.0.3 |
このフィールドを使用しないか、コネクタのバージョンをアップグレードしてください。 |
|
P1 |
メトリックのレポートは、結果テーブルの書き込みパフォーマンスに影響します。シンクノードの |
4.0.15-4.0.17 |
4.0.18 |
この問題の影響を受けないバージョンを使用します。 |
|
P2 |
バッチソーステーブルから |
4.0.14 以前のバージョン |
4.0.15 |
ソーステーブルからダーティデータを削除するか、コネクタのバージョンをアップグレードしてください。 |
|
P2 |
全量・増分統合のソーステーブルの DDL で |
4.0.13 |
4.0.14 |
全量・増分統合機能の使用を避けるか、コネクタのバージョンをアップグレードしてください。 |