Apache Iceberg:データレイク管理を強化するための最新のテーブル形式
Apache Icebergは、従来のハイブテーブルの欠点に対処するために設計された最先端のテーブル形式であり、優れたパフォーマンス、データの一貫性、およびスケーラビリティを実現します。この記事では、Icebergの進化、主要な機能(酸トランザクション、スキーマの進化、タイムトラベル)、アーキテクチャ、およびデルタ湖やParquetなどの他のテーブル形式との比較について説明します。また、最新のデータ湖との統合と、大規模なデータ管理と分析への影響を調べます。
2017年にNetflixで発信され(Ryan BlueとDaniel Weeksの発案者)、Apache Icebergは、ハイブテーブル形式に固有のパフォーマンスボトルネック、一貫性の問題、制限を解決するために作成されました。 2018年にオープンソーシングされ、Apache Software Foundationに寄付され、すぐに牽引力を獲得し、Apple、AWS、LinkedInなどの業界の巨人からの貢献を引き付けました。
Netflixの経験は、ハイブの重大な弱点を強調しました。テーブル追跡のためのディレクトリへの依存です。このアプローチには、堅牢な一貫性、効率的な並行性、および最新のデータ倉庫で予想される高度な機能に必要な粒度がありませんでした。 Icebergの開発は、次のことを焦点を当ててこれらの制限を克服することを目的としています。
Icebergは、ディレクトリではなく、ファイルの構造化リストとしてテーブルを追跡することにより、これらの課題に対処します。複数のファイルにわたってメタデータ構造を定義する標準化された形式を提供し、SparkやFlinkなどの人気エンジンとのシームレスな統合のためのライブラリを提供します。
Icebergの設計は、既存のストレージおよび計算エンジンとの互換性を優先し、大幅な変更なしに広範な採用を促進します。目的は、氷山を業界標準として確立し、ユーザーが基礎となる形式に関係なくテーブルと対話できるようにすることです。現在、多くのデータツールがネイティブアイスバーグのサポートを提供しています。
アイスバーグは、単にハイブの制限に対処するだけで超越しています。データレイクとデータレイクハウスのワークロードを強化する強力な機能を導入します。主な機能は次のとおりです。
Icebergは、楽観的な並行性制御を使用して酸性特性を確保し、トランザクションが完全にコミットされるか、完全に巻き戻されていることを保証します。これにより、データの整合性を維持しながら、競合が最小限に抑えられます。
従来のデータ湖とは異なり、Icebergはテーブル全体を書き直さずにパーティションスキームを変更できます。これにより、既存のデータを破壊することなく、効率的なクエリ最適化が保証されます。
Icebergは、パーティション化に基づいてクエリを自動的に最適化し、ユーザーがパーティション列で手動でフィルタリングする必要性を排除します。
Icebergは、効率的な行レベルの更新のために、コピーオンワイト(COW)とMerge-on-read(MOR)戦略の両方をサポートしています。
Icebergの不変のスナップショットにより、タイムトラベルクエリと以前のテーブル状態にロールバックする機能が可能になります。
Icebergは、データの書き換えなしにスキーマの変更(列の追加、削除、または変更)をサポートし、柔軟性と互換性を確保します。
このセクションでは、Icebergの建築と、Hiveの制限を克服する方法について説明します。
データレイヤーは、実際のテーブルデータ(データファイルと削除ファイル)を保存します。分散ファイルシステム(HDFS、S3など)でホストされ、複数のファイル形式(Parquet、ORC、AVRO)をサポートしています。寄木細工は、一般的にその円柱状の保管よりも好まれます。
このレイヤーは、ツリー構造内のすべてのメタデータファイルを管理し、データファイルと操作を追跡します。主要なコンポーネントには、マニフェストファイル、マニフェストリスト、メタデータファイルが含まれます。 Puffin Filesは、クエリ最適化のための高度な統計とインデックスを保存します。
カタログは中央のレジストリとして機能し、各テーブルの現在のメタデータファイルの場所を提供し、すべての読者と作家に一貫したアクセスを保証します。さまざまなバックエンドは、Icebergカタログ(Hadoopカタログ、Hive Metastore、Nessie Catalog、AWS Glue Catalog)として機能します。
氷山、パルケット、オーク、デルタ湖は、大規模なデータ処理で頻繁に使用されます。 Icebergは、ファイル形式であるParquetやOrcとは異なり、トランザクション保証とメタデータの最適化を提供するテーブル形式として区別しています。デルタ湖と比較して、アイスバーグはスキーマとパーティションの進化に優れています。
Apache Icebergは、データレイク管理に対する堅牢でスケーラブルでユーザーフレンドリーなアプローチを提供します。その機能により、大規模なデータを処理する組織にとって魅力的なソリューションになります。
Q1。 Apache Icebergとは何ですか? A.データのパフォーマンス、一貫性、およびスケーラビリティを強化する最新のオープンソーステーブル形式。
Q2。 Apache Icebergが必要なのはなぜですか? A.メタデータの取り扱いとトランザクション機能におけるHiveの制限を克服する。
Q3。 Icebergはスキーマの進化をどのように処理しますか? A.完全なテーブル書き換えを必要とせずにスキーマの変更をサポートします。
Q4。 Icebergのパーティションの進化とは何ですか? A.履歴データを書き換えずにパーティションスキームを変更します。
Q5。 Icebergは酸トランザクションをどのようにサポートしていますか? A.楽観的な並行性制御を通じて、アトミックの更新を確保します。
以上がApache Icebergテーブルの使用方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。