Apache Paimon は、ストリーミングとバッチのデータ処理を統合するレイクハウスストレージフォーマットです。Paimon は、ログ構造化マージツリー (LSM) テクノロジーに基づいて構築されており、一貫性のある読み取りと高スループットでレイク層にリアルタイム更新セマンティクスを提供します。Realtime Compute for Apache Flink で Paimon テーブルを使用することで、Object Storage Service (OSS) などのクラウドストレージ上にストリーミングレイクハウスを構築できます。
Paimon は、単一のストレージフォーマットを通じて、ストリーム処理用の Apache Flink およびバッチ処理用の Apache Spark と統合します。主な機能は次のとおりです:
-
リアルタイムデータ取り込み:MySQL CDC などのデータベース変更ストリームから数千万件のレコードを取り込み、スキーマ変更の自動同期と低レイテンシを実現します。
-
ストリームとバッチの統合処理:同じ Paimon テーブルを、Spark では有界バッチソースとして、Flink では無制限のチェンジログストリームとして読み取ることができ、フォーマット変換は不要です。
-
幅広いエコシステムとの統合:Paimon テーブルを Realtime Compute for Apache Flink、E-MapReduce (Spark、StarRocks、Hive、Trino)、MaxCompute に接続でき、データの重複は発生しません。
-
低レイテンシの OLAP クエリ:削除ベクトルとプライマリキーインデックスにより、ストリーミング、バッチ、オンライン分析処理 (OLAP) ワークロードのクエリレイテンシを分単位に抑えます。
詳細については、「Apache Paimon」をご参照ください。
使用方法
Paimon の使用開始
-
本番環境のパイプラインを構築する前に、コアコンセプトと基本的な操作から始めてください。詳細については、「Paimon クイックスタート:基本機能」をご参照ください。
-
ワークロードに適したテーブルタイプを選択してください。データにストリーミングでの挿入、更新、削除が必要な場合は プライマリキーテーブル を使用し、ログ同期などの挿入のみのワークロードには 追記専用テーブル (プライマリキーなし) を使用します。
-
Paimon がスナップショット間でデータの鮮度と一貫性をどのように維持するかを理解するには、「データレイテンシと一貫性」をご参照ください。
-
エンドツーエンドでストリーミングレイクハウスを構築するためのステップバイステップガイドについては、「Paimon と StarRocks のストリーミングレイクハウス」をご参照ください。
Paimon カタログの作成
Paimon カタログは、OSS などの外部システムに保存された Paimon テーブルの一元的なレジストリです。他の Alibaba Cloud サービスは、同じカタログを通じてテーブルにアクセスします。カタログは、次のいずれかの方法で設定できます:
-
Paimon カタログを作成して使用します。詳細については、「Paimon カタログの管理」をご参照ください。
-
Paimon テーブルのメタデータを Data Lake Formation (DLF) に同期します。詳細については、「DLF カタログの作成」をご参照ください。
-
MaxCompute で Paimon 外部テーブルを作成し、MaxCompute から Paimon データをクエリします。詳細については、「MaxCompute カタログの作成」をご参照ください。
-
メタデータを DLF に同期し、MaxCompute で Paimon 外部テーブルを同時に作成します。詳細については、「Paimon 同期カタログの作成」をご参照ください。
Paimon テーブルの作成
-
Paimon カタログ内で直接テーブルを作成します。詳細については、「テーブルの管理」をご参照ください。
-
MySQL や Kafka などのソースからテーブルを同期し、Flink CDC データ取り込みジョブ を使用して Paimon テーブルを作成します。詳細については、「データレイクへのリアルタイムログ取り込み」および「データベースデータのデータレイクへのリアルタイム取り込み」をご参照ください。
Paimon テーブルへのデータ書き込み
-
Paimon テーブルにレコードを挿入または更新します。詳細については、「Paimon テーブルへのデータ書き込み」をご参照ください。
-
Paimon テーブルを他のテーブルと結合し、集計関数を適用します。詳細については、「マージエンジン」をご参照ください。
-
Paimon テーブルを部分的または完全に上書きします。詳細については、「INSERT OVERWRITE によるデータの上書き」をご参照ください。
-
Paimon テーブルから行を削除します。詳細については、「DELETE によるデータの削除」をご参照ください。
-
Paimon テーブルからパーティションを削除します。詳細については、「テーブルスキーマの変更」をご参照ください。
Paimon テーブルからのデータ消費
-
バッチモードまたはストリーミングモードで Paimon テーブルからデータをクエリまたは消費します。詳細については、「Paimon テーブルからのデータ消費」をご参照ください。ストリーミングモードでプライマリキーテーブルからデータを消費するには、まず チェンジログプロデューサー を設定してください。
-
Paimon テーブルのコンシューマーオフセットを設定します。詳細については、「指定されたオフセットからのデータ消費」をご参照ください。
-
Paimon テーブルのコンシューマーオフセットを保存するか、アクティブなコンシューマーによって引き続き参照されている期限切れのスナップショットファイルを保持します。詳細については、「コンシューマー ID の指定」をご参照ください。
-
バッチジョブを実行して、特定のスナップショットから Paimon テーブルの履歴状態を読み取ります。詳細については、「バッチタイムトラベル」をご参照ください。
Paimon テーブルのメンテナンス
-
Paimon コネクタに関する一般的な問題のトラブルシューティングを行います。詳細については、「コネクタ」をご参照ください。
-
Paimon テーブルの読み取りおよび書き込みパフォーマンスをチューニングします。詳細については、「Paimon テーブルのパフォーマンスチューニング」をご参照ください。
-
パーティションリストやパーティションごとのファイルサイズなどのテーブルメタデータを検査します。詳細については、「Paimon システムテーブル」をご参照ください。
-
Paimon カタログ内のテーブルのスキーマを変更します。詳細については、「テーブルスキーマの変更」をご参照ください。
-
Paimon カタログからテーブルを削除します。詳細については、「テーブルの削除」をご参照ください。
-
固定バケットモードの Paimon テーブルのバケット数を再スケールします。詳細については、「固定バケットモードでのバケット数の変更」をご参照ください。
-
Paimon テーブルディレクトリから古いファイルをクリーンアップします。詳細については、「期限切れデータのクリーンアップ」をご参照ください。