Apache Paimon は、ストリーム処理とバッチ処理を統合するレイクハウスストレージフォーマットです。LSM ツリー (ログ構造化マージツリー) 技術に基づいて構築された Paimon は、整合性のある読み取りと高いスループットにより、レイク層にリアルタイム更新セマンティクスを提供します。Realtime Compute for Apache Flink で Paimon テーブルを使用して、Object Storage Service (OSS) などのクラウドストレージ上にストリーミングレイクハウスを構築できます。
Paimon は、単一のストレージフォーマットを通じて、ストリーム処理には Apache Flink、バッチ処理には Apache Spark と統合します。主な機能は次のとおりです:
-
リアルタイムデータインジェスト:MySQL CDC などのデータベース変更ストリームから数千万件のレコードをインジェストし、スキーマ変更の自動同期と低レイテンシーを実現します。
-
ストリーム処理とバッチ処理の統合:Spark では有界バッチソースとして、Flink では無界変更ログストリームとして同じ Paimon テーブルを読み取ることができ、フォーマット変換は不要です。
-
幅広いエコシステム連携: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 や Apache Kafka などの外部ソースからデータを同期して Paimon テーブルを作成します。これには CREATE TABLE AS (CTAS) ステートメント または CREATE DATABASE AS (CDAS) ステートメント を使用します。詳細については、「CTASまたはCDASを使用したテーブルの作成」をご参照ください。
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 テーブルディレクトリから古いファイルをクリーンアップします。詳細については、「期限切れデータのクリーンアップ」をご参照ください。