Apache Iceberg™テーブル向けSnowflakeストレージ:Snowflakeのシンプルな相互運用性

「オープンなレイクハウス」の約束は、常に選択肢を提供すること、つまりSnowflakeであるかどうかにかかわらず、すべてのチームが好みのエンジンを使用できるようにすることでした。
しかし、組織が相互運用可能なデータフォーマットとしてApache Iceberg™を採用するにつれて、新たなボトルネックが浮上しています。データフォーマットはオープンである一方、ストレージバケットは「セルフマネージド」のままであることがよくあります。これにより、隠れた運用コストが発生します。チームは、クラウドバケットのポリシーの設定や管理、リスクを伴うストレージのメンテナンスに多くの時間を費やしています。
本日、AWSおよびAzure上のApache Iceberg™テーブル向けSnowflakeストレージが一般提供されたことをお知らせします。このリリースは、Apache Icebergの完全な相互運用性と、Snowflakeストレージの組み込みのレジリエンシー、パフォーマンス、およびゼロ管理の運用体験という、両者の利点を提供します。
セルフマネージドストレージの負担を排除
長年にわたり、Snowflakeのお客様はSnowflakeにデータを保存するシンプルさを享受してきました。ファイルの保存場所、暗号化の方法、メタデータの追跡方法について心配する必要はありません。期待どおりに機能するのです。
しかし、マルチエンジンの要件が高まるにつれて、多くのアーキテクトは、外部ツールからデータにアクセスできるようにするために、セルフマネージドストレージアーキテクチャの採用を余儀なくされていると感じています。この移行には、多くの場合、高い学習コストが伴います。セルフマネージド環境では、データエンジニアが困難な作業を担います。複雑なIAMロールの設定、バケットレベルの暗号化の管理、すべての外部エンジンが最新のテーブルバージョンと確実に同期されるようにすることなどです。
Apache Iceberg™テーブル向けSnowflakeストレージは、この手間を解消します。IcebergテーブルをSnowflakeのマネージドインフラストラクチャ上で直接ホストできるようになりました。管理者にとっては、Snowflakeに保存されている他のデータと同じように見え、同じように操作できます。一方、外部のSparkやTrinoクラスターにとっては、標準的で高性能なIcebergテーブルとして認識されます。これでついに、セルフマネージドストレージの煩雑な運用や保守という悪夢を引き継ぐことなく、すべてのデータコンシューマーの要望に応えられます。
組み込みの安心感:サービスとしてのデータ整合性
オープン性は脆弱さと同義ではありません。セルフマネージドストレージの最大のリスクの1つは、組み込みのセーフティネットがないことです。
1つのミスの代償
よくあるシナリオを考えてみましょう。あるデータエンジニアが、ストレージコストを節約するために、セルフマネージドのS3バケット内にある古いデータをクリーンアップするタスクを担当しています。クラウドのライフサイクルポリシーを誤って設定したり、現在のテーブルバージョンから参照されている重要なメタデータフォルダーやマニフェストファイル一式を削除するクリーンアップスクリプトを実行してしまったりします。
従来のセルフマネージドのIcebergセットアップでは、このミスはしばしば壊滅的な結果をもたらします。統合されたリカバリメカニズムがないと、テーブルの整合性が失われます。エンジンはエラーを返すか、さらに悪いことに、不完全なクエリ結果を返します。その状態を手動で回復するには、可能だとしても、数日とは言わないまでも数時間のフォレンジック作業が必要になる場合があります。
Snowflakeのセーフティネット
Apache Iceberg™テーブル向けSnowflakeストレージにより、エンタープライズクラスのレジリエンシーをIcebergエコシステムにもたらします。
フェイルセーフ:7日間のマネージドリカバリウィンドウを提供します。メタデータが誤って破損または削除された場合、Snowflakeはリカバリウィンドウ内でメタデータを整合性のある状態に復元するのに役立ちます。これは、セルフマネージドストレージにはない、組み込みのデータレジリエンスメカニズムです。
クロスクラウドレプリケーション:事業継続性のための機能が組み込まれています。複数のリージョンやクラウド間でIcebergデータをシームレスにレプリケートでき、プロバイダーレベルの障害発生時でも高可用性を提供します。
ストレージレイヤーを管理することで、Snowflakeは、Snowflakeに保存されている最もミッションクリティカルな内部テーブルと同じ耐久性アーキテクチャを、相互運用可能なデータに付与します。
スタック全体で最適化された相互運用性
データを保存することは戦いの半分にすぎず、残りの半分は、データにアクセスするすべてのエンジンにとって「すぐに使える」状態にデータを準備することだと私たちは考えています。
レイクハウスにおける共通の課題は「スモールファイル問題」です。これは、頻繁な書き込みによって何千もの小さなファイルが作成され、すべてのエンジンでクエリパフォーマンスが低下する問題です。従来、これを解決するには、手動でのVACUUMまたはREORGコマンドの実行と、継続的な監視が必要でした。
Snowflakeストレージは、「インテリジェントなテーブル最適化」を通じてこの問題に対処します。この機能は、ストレージのバックグラウンドの「オートパイロット」として機能し、ファイルのコンパクションやクラスタリングなどのタスクを自動的に処理します。
さらに、すべてのテーブルはSnowflake上で最高のパフォーマンスを発揮するように最適化されています。しかし、私たちの取り組みはそれだけでは終わりません。スタック全体で相互運用性をさらに高めるため、データエンジニアが特定のニーズに合わせてストレージレイアウトを調整できる設定項目を用意しました。ファイルサイズの設定やパーティショニングスキームを調整することで、SparkやTrinoなどの外部エンジンの特定のスキャンパターンに合わせて、Snowflakeが書き込むデータを最適化できます。
その結果、ワークロード全体でパフォーマンスが向上します。Snowflakeは設定に従ってデータを最適に配置し、クエリのレイテンシーを短縮して、データエコシステム全体の効率を向上させます。
相互運用性をすべて備え、複雑さを排除
Apache Iceberg™テーブル向けSnowflakeストレージは、ストレージのメンテナンスではなく、データ戦略に集中したい組織に最適です。Snowflakeに基盤管理を任せることで、任意のエンジンに開かれた、セキュアで最適化された回復力のあるデータファウンデーションを構築できます。
使用を開始する
SnowflakeストレージでのIcebergテーブルの作成は、標準のネイティブテーブルを作成するのと同じくらい簡単です。Snowflakeマネージドストレージを使用して最初のIcebergテーブルを作成するには、以下を実行するだけです。
CREATE ICEBERG TABLE my_iceberg_table_internal (col1 int)
CATALOG = SNOWFLAKE
EXTERNAL_VOLUME = SNOWFLAKE_MANAGED;レイクハウスアーキテクチャを簡素化する準備はできていますか。新しいeBook「Building the Interoperable Lakehouse:Data Strategies for AI Leaders」をダウンロードし、ドキュメントを参照して、今すぐApache Iceberg™テーブル向けSnowflakeストレージの使用を開始できます。
将来予想に関する記述
本コンテンツには、将来の製品提供に関するものを含め、将来予想に関する記述が含まれており、いかなる製品の提供を約束するものでもありません。実際の成果や提供内容は異なる可能性があり、既知および未知のリスクおよび不確実性の影響を受けます。詳細については、当社の最新の10-Qをご覧ください。

