CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回からは、2024年に公開された論文「BigLake: BigQuery’s Evolution toward a Multi-Cloud Lakehouse」に基づいて、マルチクラウド対応に向けたBigQueryの機能拡張について紹介していきます。今回は、その中心となる「BigLakeアーキテクチャー」の全体像を紹介します。
第176回からの記事「Vortex: BigQueryのStorage APIを支えるStorageエンジン」では、BigQueryのStorage APIを解説しましたが、そこでは、図1の標準アーキテクチャーを前提とした説明を行いました。図の最下段にある「Distributed Storage」には、BigQueryの検索処理に最適化された「BigQuery Managed Storage Tables」としてデータが保存されており、外部システムは中段の「High-throughput Storage API」を通してデータの読み書きを行います。
図1 BigQueryの標準アーキテクチャー(論文より抜粋)
一方、今回の論文のタイトルには「Multi-Cloud Lakehouse」というキーワードがあります。Lakehouseというのは、データウェアハウスの拡張概念で、さまざまな場所に分散して存在するデータを横断的に検索するシステムを表します。現在のBigQueryは、前述の標準的なストレージの他に、Google Cloud Storage、あるいは、他のクラウド上のデータストアにもデータが保存できます。つまり、現在のBigQueryは、マルチクラウドに対応したLakehouseとしての役割も果たします。この論文では、これを実現するアーキテクチャーを「BigLake」と読んでおり、図2の全体像が示されています。
図2 BigQueryの「BigLake」アーキテクチャー(論文より抜粋)
図の最下部にあるように、データの保存場所として、BigQuery標準のストレージ(BigQuery Storage)に加えて、Google Cloud Storageと他のクラウド上のオブジェクトストレージが示されています。これらのオブジェクトストレージにデータを保存する際は、ParquetやIcebergなどのオープンなデータフォーマットを用いたテーブルを使用します。また、Google Cloud Storageを使用する場合は、BigQueryに最適化された独自のフォーマットによるテーブル(BigLake Managed Tables)も選択できます。
Google Cloud以外のクラウド上に保存したデータを検索する仕組みには、BigQuery Omniがあります(図3)。一見すると、Google Cloud以外のクラウドに、独立したBigQuery環境をデプロイする仕組みのように見えますが、実際には少し異なります。
図3 BigQuery Omniのアーキテクチャー概要(論文より抜粋)
第176回の記事では、BigQueryの動作の仕組みを次のように説明しました。
BigQueryでクエリーを実行すると、クエリーのコーディネーターは、有向グラフ形式の実行プランを生成して、グラフの各ノードの処理を複数のコンテナに割り当てる事で並列分散処理を行います。この際、有向グラフの末端にあたるリーフノードは、ストレージエンジンからRead APIを用いて必要なデータを読み出した上で、上位のノードに受け渡します。
BigQuery Omniでは、図3の上部にあるBigQuery Control Planeが複数環境のシステムを束ねるコーディネーターの役割を持っており、各クラウドにデプロイされたシステムは、コーディネーターの実行プランに従って、該当クラウド上のデータに対する検索処理を行います。つまり、BigQueryのユーザーは、複数クラウドにまたがる環境を単一のBigQueryのシステムとして利用できて、複数クラウドにまたがった検索が行えます。図4は、異なるクラウドに配置された2つのデータセットのテーブルを結合するクエリーの例になります。
図4 複数クラウドにまたがるデータセットを結合するクエリーの例(論文より抜粋)
今回は、2024年に公開された論文「BigLake: BigQuery’s Evolution toward a Multi-Cloud Lakehouse」に基づいて、マルチクラウド対応に向けたBigQueryの機能拡張の中心となる「BigLakeアーキテクチャー」の全体像を紹介しました。次回は、オブジェクトストレージにデータを保存するBigLake Tablesのアーキテクチャーを紹介します。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes