Alibaba Cloud Realtime Compute for Apache Flink は、Alibaba Cloud が Apache Flink をベースに開発したエンタープライズレベルの高性能プラットフォームであり、ビッグデータをリアルタイムで処理します。Hologres は Realtime Compute for Apache Flink とシームレスに統合されています。Realtime Compute for Apache Flink を使用して Hologres にデータを書き込み、リアルタイムでデータをクエリできます。これにより、企業向けのリアルタイム データウェアハウスを構築できます。
説明
Realtime Compute for Apache Flink はデータを保存しません。Realtime Compute for Apache Flink によって処理されるすべてのデータは、外部ストレージシステムからのものです。Realtime Compute for Apache Flink は、次のデータストレージタイプをサポートしています。
ソーステーブル
ソーステーブルには、Realtime Compute for Apache Flink にインポートされるデータが含まれています。Hologres ソーステーブルを使用する場合、Hologres データはストリーミングモードではなくバッチモードでインポートされます。Hologres はテーブル全体をスキャンし、必要なデータを一度に Realtime Compute for Apache Flink に転送してデータ処理を行います。
ディメンションテーブル
ディメンションテーブルは、プライマリキーに基づいてデータがクエリされるポイントクエリシナリオに適しています。Hologres ディメンションテーブルを使用する場合は、ディメンションテーブルに行指向ストレージモードを使用することをお勧めします。プライマリキーとして構成されているすべてのフィールドは、JOIN 操作に使用する必要があります。
結果テーブル
結果テーブルは、Realtime Compute for Apache Flink によって処理された結果データを受信して保存し、ダウンストリームのデータ消費のための読み取りおよび書き込みインターフェイスを提供するために使用されます。
Realtime Compute for Apache Flink は Hologres と統合されており、次のエンタープライズレベルの高度な機能を提供します。
Hologres バイナリログの使用
Message Queue のさまざまな使用モードを使用して、Hologres テーブルの変更ログを使用できます。
Flink カタログ
Hologres カタログは、Realtime Compute for Apache Flink でサポートされています。Hologres テーブルを登録する必要なく、フルマネージド Flink のコンソールで Hologres メタデータを読み取ることができます。Hologres カタログは開発効率を向上させ、スキーマの精度を保証します。
スキーマ進化
スキーマ進化は、フルマネージド Flink でサポートされています。Realtime Compute for Apache Flink が JSON 形式のデータを読み取ると、データ型を自動的に解析し、対応するテーブルに列を作成します。スキーマの動的進化がサポートされています。
次の表は、Hologres でサポートされている Flink サービスの種類と、サービスの種類の機能について説明しています。
サービスの種類
データストレージの種類
エンタープライズレベルの高度な機能
説明
ソーステーブル
結果テーブル
ディメンションテーブル
Hologres バイナリログの使用
Flink カタログ
スキーマ進化
Semi-managed Flink
行指向ストレージと列指向ストレージがサポートされています。バイナリログソーステーブルには、行指向ストレージまたは行と列のハイブリッドストレージを使用することをお勧めします。
行指向ストレージと列指向ストレージがサポートされています。
行指向ストレージまたは行と列のハイブリッドストレージを使用することをお勧めします。
サポートしています。
サポートしています。
サポートしています。
EMR Studio 開発プラットフォームを使用します。
Blink in exclusive mode (廃止)
行指向ストレージと列指向ストレージがサポートされています。バイナリログソーステーブルには、行指向ストレージまたは行と列のハイブリッドストレージを使用することをお勧めします。
行指向ストレージと列指向ストレージがサポートされています。
行指向ストレージまたは行と列のハイブリッドストレージを使用することをお勧めします。
Hologres V0.8 は行指向ストレージのみをサポートしています。Hologres V0.9 以降は、行指向ストレージと列指向ストレージの両方をサポートしています。行指向ストレージを使用することをお勧めします。
サポートしていません。
サポートしていません。
Bayes 開発プラットフォームを使用します。
Apache Flink 用の Realtime Compute のフルマネージド 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 バージョン | Realtime Compute for Apache Flink (VVR バージョン) | Hologres バージョン | 更新情報 | 参照情報 |
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 | ソーステーブル:
結果テーブル: データは固定コピーモードで結果テーブルに書き込むことができます。このモードは Hologres V1.3 でサポートされています。ストリーミングモードは固定コピーモードで使用されます。JDBC モードでは、データはバッチで処理されます。そのため、固定コピーモードでの書き込みは、JDBC モードでの書き込みよりもスループットが高く、レイテンシが低く、クライアントメモリの消費量が少なくなります。 Hologres カタログ:
sdkMode パラメーター: Hologres のさまざまな種類のテーブルで複数のモードを使用できます。sdkMode パラメーターは、Hologres のテーブルのモードを指定するために使用されます。 | |
1.13 | 4.0.18 | 1.1 以降 | 次の問題が修正されました。シンクテーブル関連のメトリックが報告されると、書き込みパフォーマンスに悪影響を及ぼします。 | |
1.13 および 1.15 | 4.0.15 および 6.0.2 | 1.1 以降 | ソーステーブル:
ディメンションテーブル: 非同期リクエストのタイムアウト期間設定は、Hologres ディメンションテーブルでサポートされています。タイムアウト期間は asyncTimeoutMs パラメーターで指定します。 結果テーブル:
| |
1.13 | 4.0.13 | 1.1 以降 |
| |
1.13 | 4.0.11 | 0.10 以降 | CREATE TABLE AS 文と CREATE DATABASE AS 文がサポートされています。 | |
1.13 | 4.0.8 | 0.10 以降 | Hologres カタログは、結果テーブル、ソーステーブル、およびディメンションテーブルでサポートされています。 | |
1.13 | 3.0.0 | 0.9 以降 | Hologres データのリアルタイム使用がサポートされています。 |
Hologres コネクタの既知の問題と修正バージョン
問題と修正に関する注意事項
影響を受けるバージョンは明確に指定されています。影響を受けるバージョンの範囲外である場合は、対応する不具合はありません。
「影響を受けるバージョン」列に「N/A」と指定されている場合、問題はコネクタの問題ではなく、Hologres エンジンの不具合である可能性があります。
不具合レベル
P0: Hologres インスタンスをすぐにアップグレードすることをお勧めします。P0 の問題が発生した場合、オンライン操作に影響します。たとえば、データクエリの精度とデータ書き込みの成功率に影響します。
P1: 関連する問題を防ぐために、Hologres インスタンスをアップグレードすることをお勧めします。
P2: ビジネス要件に基づいて Hologres インスタンスをアップグレードできます。P2 の問題は散発的に発生し、すぐに使えるソリューションを使用するか、Hologres インスタンスを再起動することで修正できます。
重大度 | 問題 | 影響を受けるバージョン | 修正バージョン | ソリューション |
P1 | JDBC モードでのバイナリログ使用中に、「Binlog Convert Failed」というエラーメッセージが報告されるか、一部のシャードからのデータ読み取りが特定の時点で停止します。Hologres インスタンスのゲートウェイがバックエンドタイムアウトメッセージを受信すると、ゲートウェイは例外情報をクライアントに送信します。このプロセスでエラーが発生しました。その結果、データの読み取りが停止するか、データの解析に失敗します。 | N/A | N/A | ほとんどの場合、このエラーはジョブのバックプレッシャーが発生したときに報告される可能性が高くなります。データの読み取りが停止した場合は、最新のチェックポイントからジョブを再開します。 この問題を完全に解決するには、Hologres インスタンスを V2.2.21 以降にアップグレードする必要があります。 |
P2 | ドラフトデプロイが遅い場合、またはタイムアウトした場合、スレッドダンプをチェックして、デプロイプロセスが GetTableSchema で停止していることを確認します。 | N/A | N/A | 複数の状況が存在する可能性があります。問題のトラブルシューティングを行うには、次の手順を順番に実行します。
|
P0 | FixedFE モードで TEXT、JSON、または JSONB データ型のデータを Hologres に書き込み、データソースに無効な文字が含まれている場合、予期しない例外がスローされる可能性があります。その結果、接続されている FE ノードが再起動し、FE 接続が中断されます。FixedFE モードは、Hologres コネクタの jdbc_fixed モードに対応します。 | N/A | N/A | アップストリームの文字列の有効性が保証されない場合は、JDBC モードで Hologres にデータを書き込み、設定することをお勧めします。 アップストリーム文字列の有効性を保証できない場合は、JDBC モードで Hologres にデータを書き込み、結果テーブルの また、Hologres インスタンスを Hologres V3.0 以降にアップグレードして、jdbc_fixed モードを使用することもできます。 |
P1 | JDBC ディメンションテーブルが複数のテーブルと結合されている場合、Flink タスクでメモリ使用量が過剰になるか、メモリ不足 (OOM) の状況が発生する可能性があります。 | N/A | N/A | Hologres V1.3 で この問題を解決するには、Hologres インスタンスを Hologres V2.0 以降にアップグレードする必要があります。 |
P1 | ジョブが状態から再開するときに、 | 8.0.4 | 8.0.9 | Flink 8.0.9 以降では、テーブル ID は強制的にチェックされなくなりました。警告レベルのログのみが生成されます。これにより、ジョブは最新の状態から再開できます。ただし、バイナリログを使用するジョブの実行中にテーブルを再構築することはお勧めしません。テーブルの再構築操作により、以前のバイナリログが完全に失われる可能性があります。 |
P2 | ジョブの実行中にバックプレッシャーが発生します。スレッドダンプをチェックすることにより、実行プールが close メソッドまたは start メソッドで停止していることがわかります。その理由は、複数のクライアントが同じ接続プールを再利用すると、デッドロックが発生し、接続プールを正しく閉じることができないためです。 | 8.0.5 | 8.0.9 | Hologres インスタンスのバージョンをアップグレードすることをお勧めします。 |
P2 | ソーステーブルで | 8.0.6 以前 | 8.0.7 | Hologres インスタンスのバージョンをアップグレードするか、増分使用の開始時刻を指定することをお勧めします。 |
P1 | ディメンションテーブルに多数のフィールドが含まれている場合、ドラフトデプロイがタイムアウトします。 | 8.0.6 | 8.0.7 | Hologres インスタンスのバージョンをアップグレードすることをお勧めします。 |
P0 | バッチソーステーブルの 説明 この問題は、完全データと増分データを含むソーステーブルとバイナリログソーステーブルには存在しません。 | 8.0.5 以前 | 8.0.6 | Hologres インスタンスのバージョンをアップグレードすることをお勧めします。 |
P0 | FixedFE モードで JSON または JSONB データ型のデータを Hologres に書き込み、データが無効な場合、接続されている FE ノードが再起動し、FE 接続が中断されます。FixedFE モードは、Hologres コネクタの | 8.0.5 以前 | N/A | JSON または JSONB データ型のソースデータが無効になる可能性がある場合は、JDBC モードを使用して Hologres にデータを書き込むことをお勧めします。 |
P1 | JDBC ディメンションテーブルが複数のテーブルと結合されている場合、接続障害などの内部例外が報告されない場合があります。この場合、非同期に結合されたノードにバックプレッシャーがかかり、データが流れなくなります。この問題は、低い確率で発生します。 | 6.0.7 以前 | 8.0.3 | インスタンスバージョンをアップグレードすることをお勧めします。デプロイメントを再起動することもできます。 |
P1 | JDBC モードで Hologres バイナリログを使用する場合、メモリリークが発生する可能性があります。メモリリークが発生した場合、ジョブの開始時の使用率が高く、その後低下し続ける可能性があります。 | 6.0.7 以前 | 6.0.7 | インスタンスバージョンをアップグレードすることをお勧めします。DataStream デプロイメントの場合は、バージョン 1.15-vvr-6.0.7-1 の依存関係を使用する必要があります。 |
P0 | JDBC モードでのスケジュールされたフラッシュ操作によってキャプチャされた例外は、次のデータレコードが書き込まれたときにのみ報告されます。スケジュールされたフラッシュ操作は、jdbcWriteFlushInterval パラメーターによって制御されます。少量のデータが書き込まれた場合、例外がキャプチャされているが報告されていない期間中にチェックポイント操作が正常に実行される可能性があります。この場合、データ書き込みエラーが発生すると、デプロイメントはチェックポイントからデータの再書き込みを開始します。その結果、データが失われる可能性があります。 | 6.0.6 以前 | 6.0.7 | この問題は、データ量が小さい場合に発生する可能性があります。インスタンスバージョンをアップグレードするか、jdbcWriteFlushInterval パラメーターの値をチェックポイント間隔よりも大きくすることをお勧めします。 |
P2 | JDBC モードでバイナリログを使用するときにスロット名を指定しないと、システムは自動的にスロットを作成し、デフォルト名を使用します。テーブル名に特殊文字またはスキーマ名が含まれている場合、自動的に作成されたスロットの名前は無効になり、スロットを使用できません。その結果、構文エラーが報告されます。 | 6.0.6 | 6.0.7 | インスタンスバージョンをアップグレードすることをお勧めします。DataStream デプロイメントの場合は、バージョン 1.15-vvr-6.0.7-1 の依存関係を使用する必要があります。 |
P1 | デプロイメントで異なる Hologres インスタンスまたはデータベースが同じ | 6.0.6 以前 | 6.0.7 | デプロイメントに使用される異なる Hologres インスタンスまたはデータベースの |
P1 | ディメンションテーブルに | 6.0.6 | 6.0.7 | Hologres インスタンスのバージョンをアップグレードすることをお勧めします。 |
P0 | デフォルトでは、Hologres ソーステーブルのフィルタープッシュダウンは有効になっています。デプロイメントで Hologres ディメンションテーブルを使用し、データ書き込みに使用されるデータ操作言語 (DML) 文にディメンションテーブルの非プライマリキーフィールドのフィルター条件が含まれている場合、フィルタープッシュダウンがディメンションテーブルで誤って実行されます。これにより、ディメンションテーブルの結合が無効になる可能性があります。 | 6.0.3~6.0.5 | 6.0.6 | Hologres インスタンスのバージョンをアップグレードすることをお勧めします。 |
P0 | 複数の結果テーブルに | 6.0.2 以前 | 6.0.3 | すべての結果テーブルの |
P1 | バイナリログソーステーブルの DDL 文で | 6.0.2 | 6.0.3 | 指定されたフィールドを使用しないか、Hologres インスタンスのバージョンをアップグレードします。 |
P1 | メトリックレポートは、結果テーブルの書き込みパフォーマンスに悪影響を及ぼします。トラブルシューティングの結果は、シンクノードの | 4.0.15~4.0.17 | 4.0.18 | この問題の影響を受けないバージョンを使用します。 |
P2 | ソーステーブルから文字列型または文字列配列型の複数の行のデータを一度に読み取るときに、特殊文字を含む文字列が解析に失敗します。 | 4.0.14 以前 | 4.0.15 | ソーステーブルのダーティデータをクリアするか、Hologres インスタンスのバージョンをアップグレードします。 |
P2 | ソーステーブルの完全データと増分データを処理するために使用される DDL 文で | 4.0.13 | 4.0.14 | 完全データと増分データの同期機能を使用しないか、Hologres インスタンスのバージョンをアップグレードします。 |