Cloudflare Basinのご紹介:オープンなサーバーレスデータプラットフォーム、一般提供開始

Marc Selwan、Micah Wylde

15分で読了

この記事は以下でも利用可能です English、Deutsch、Español、Français、한국어、繁體中文、简体中文、Português.

2025年のBirthday Weekに、当社はCloudflare Data Platformを発表しました。これは、分析データの取り込み、保存、クエリーを行う製品スイートです。本日、このプラットフォームが一般提供開始となったことをお知らせするとともに、新名称としてCloudflare Basinを発表します。

Basinは、データレイクのオープン標準であるApache IcebergとR2 Object Storageをベースに構築されたサーバーレスデータ分析プラットフォームです。Basinファミリーには以下の製品が含まれます。

  • Basin Pipelines(旧Cloudflare Pipelines)は、Workers、HTTP、またはCloudflare Logpushからイベントを受信し、SQLで変換して、Apache IcebergテーブルまたはR2内のファイルとして書き込みます。
  • Basin Catalog(旧R2 Data Catalog)は、Icebergメタデータを管理し、テーブルを高速かつコスト効率よく維持するために自動的にメンテナンスを行います。
  • Basin SQL(旧R2 SQL)は、Cloudflare上でApache Icebergテーブルを直接クエリーするためのサーバーレス分散型SQLエンジンです。

Basinは、Developer Platformにエンドツーエンドの分析プラットフォームをもたらします。アプリ、インフラ、デバイス、その他のCloudflareサービスなど、さまざまなソースからデータを収集し、それをクエリーして分析上の疑問に答えることができます。

当社がデータプラットフォームの構築に着手したのは昨年のことで、モダンなデータアプリケーションの構築方法を変える2つの根本的な動向を目にしたことがきっかけです。第一に、Apache Icebergがほぼすべての主要なクエリーエンジン間でデータをポータブルにするオープン標準のテーブルフォーマットとして台頭しました。第二に、開発者たちが分析データをR2に持ち込み始めたことを確認しました。エグレス料金がないことで、さまざまなツール、チーム、リージョン、クラウドプロバイダーからデータに実際にアクセスすることが実用的かつコスト効率の高いものになりました。

そして、Basinをオープンベータで公開したところ、Cloudflare社内の課金チームやインフラチームを含む開発者たちが、リアルタイムデータを活用したECサイトの最適化、課金メトリクスの長期ストレージとレポーティング、Cloudflareのインフラからのテレメトリーの取り込みとクエリーによる使用率・効率の計測・改善など、さまざまなユースケースでこれらのサービスを即座に採用し始めました。

「当社はカンパニー全体のデータパイプラインをBasin Pipelines、Catalog、SQLに移行しました。複雑なAWS S3とAthenaの構成を、すべてのイベントデータを確実に処理するクリーンなサーバーレスアーキテクチャに置き換えることができました。—Dax Raad、Anomaly共同創業者」

初期の採用企業から、エッジで分析プラットフォームを運用することの意味について多くを学びました。当社はこの1年間、Developer Platformにおける分析の独自性に焦点を当てた3つの領域、すなわちスピード、オープン性、コスト効率に焦点を当て、Basinの改善に取り組んできました。

Basinはスピードのために構築されています。開始の手軽さから大規模クエリーの実行まで、あらゆる面でスピードを重視しています。Basin Catalogの作成、データ取り込み用Pipelineのセットアップ、Basin SQLによるクエリー実行が数秒で完了します。これは、プロンプトからコーディングエージェントまで、より多くのデータアプリケーションが構築されるようになる中で重要です。そうでなければ、リソースやデータを待ってポーリングし続けなければならなくなります。データセットが大きくなるにつれ、Basin CatalogはメタデータとデータファイルをコンパクションしてI/Oを削減し、クエリー計画のための統計情報を生成します。Basin SQLはその統計情報を使用してクエリーをより小さなタスクに分割し、Workers全体に分散させることで、データセットのスケールアップに伴っても高速で安定したクエリーを維持します。

Basinの開発と採用における大きな原動力の一つは、オープンなApache Icebergエコシステムの継続的な成長です。開発者たちは、自分のデータを所有・管理すべきだというラジカルなアイデアを支持し、ストレージ層とコンピュート層を分離して、目的に合った適切なクエリーエンジンを使用できるようにしています。Basinでは、PyIceberg、DuckDB、Snowflake、Apache Sparkなど、あらゆるIceberg互換エンジンを使ってデータを読み書きできます。このようなデータポータビリティは、無料エグレスがあってこそ実現できるものです。無料エグレスにより、開発者はリージョンやクラウドを問わず、エコシステム内の多様なツールからCloudflare上のデータにアクセスできます。

「Bobsledは、世界で最も高度なデータチームがAI対応データをパートナー、ベンダー、顧客に構築・配布するために使用するデータ製品プラットフォームです」とBobsledのプラットフォーム責任者Julien Grobbelaarは述べています。「Basinのおかげで、すべての主要なデータおよびAIプラットフォームのあらゆるリージョンでアクセス可能なデータ製品を構築できます。しかも、エグレス料金なしによって、本番グレードの信頼性とわずかなコストで実現できます。」 

無料のエグレスに加え、当社のサーバーレスアーキテクチャにより、従量課金制でお客様にさらなるコスト効率をご提供しています。Basinがデータを取り込み、処理、またはクエリーするときにのみ課金されるのです。開発者はホビープロジェクトの分析をほぼゼロコストで構築でき、また当社の料金体系はより大規模なエンタープライズのユースケースにも経済的にスケールします。時間単位の料金や個別のインフラコストを心配する必要はありません。

すぐに始めたい方は、Basinチュートリアルをご参照ください。Basin Pipelinesを使ってイベントをBasin Catalogで管理されるApache Icebergテーブルに届け、Basin SQLでクエリーする方法のステップバイステップガイドが用意されています。Basinの詳細と今後の展開についてはこのまま読み進めてください。

なぜBasinなのか?

当社はこれらの製品を昨年Cloudflare Data Platformとして公開しました。この名称は初年度の提供期間において十分機能してきました。GA公開にあたり、プラットフォームへの当社の野望を包含し、すべての製品を結びつけ、より力強い新名称が必要だと判断しました。

「basin(流域)」とは、多くの源から流れてくる川が一点に集まる場所のことです。このプラットフォームの使われ方を完璧に表現していると感じました。PipelinesがデータをBasin Catalogに取り込み、Basin SQLが即座にクエリー可能にします。余談ですが、地球の陸地の約20%が内陸流域(endorheic basin)に流れ込んでいます。ちょうど、Webの20%以上がCloudflareのネットワーク上に存在しているようにです。

スウェーデンのヴェーネルン湖 — 2億〜3億年前のプレート運動によって形成された盆地。

現在、BasinはPipelines、Catalog、SQLの3製品で構成され、取り込み、ストレージ、クエリーをカバーしており、今後は分析データライフサイクルの残りの部分を管理するさらなる製品によって拡張されていく予定です。

Basin Pipelines

データをクエリーする前に、イベントを取り込み、スキーマに合わせて構造化し、オブジェクトストレージに書き込む必要があります。これがBasin Pipelinesの役割です。HTTPエンドポイントまたはWorkersバインディングからイベントを受け付け、SQLクエリーに従って処理し、Apache IcebergテーブルとしてBasin Catalogに、またはJSONやParquetファイルとしてR2に届けます。

ベータ公開以降、ユーザーはさまざまなユースケースで数万件のPipelineを作成しました。よく見られるパターンの一例として、CloudflareのHTTPログを保存前に変換するためのPipelineの使用があります。

INSERT INTO http_logs_sink
SELECT
  EdgeResponseStatus,
  to_timestamp_micros(EdgeStartTimestamp) AS event_time,
  upper(ClientRequestMethod) AS method,
  sha256(ClientIP) AS hashed_ip
FROM http_logs_stream
WHERE EdgeResponseStatus >= 400;

取り込み時にこの処理を行うことで、ストレージのフットプリントを大幅に削減し、動的なデータソースからのノイズを減らし、機微性の高い値や不要な値が書き込まれることを防ぐのに役立ちます。

ベータ以降、Pipelinesのスケーラビリティを大幅に拡張しました。現在、ストリームごとに最大3GB/sの取り込みに対応しています。また、機能セットと他のCloudflareシステムとの連携も拡張しました。

  • Cloudflare Logpush連携:CloudflareのログをSQLで変換し、圧縮ParquetファイルまたはIcebergテーブルとして保存でき、Basin SQLや他のエンジンですぐにクエリーできます。
  • Workerバインディングはスキーマを認識です。wrangler typesを実行すると、ストリームのスキーマからTypeScript型が生成され、デプロイ前にフィールドの欠如や型の不一致を検出できます。
  • データ品質エラーが可視化されます。ダッシュボードとGraphQL APIが、ドロップされたイベントを表示し、フィールドの欠如、型の不一致、パースエラー、null値を区別します。
  • 取り込みパス全体をInfrastructure as Codeにできます。Terraformのリソースが、カタログ、ストリーム、シンク、およびそれらを接続するSQLをカバーします。

次のステップでは、以下を含むPipelineの機能をさらに拡張する予定です。

  • Basin Catalogへの書き込み時のカスタムパーティショニング
  • スキーママイグレーション、更新可能な設定および更新可能なPipelines SQL
  • 半構造化データの効率的なクエリーのためのVARIANT型を含むIceberg V3のサポート
  • ストリーミング集計、結合、インクリメンタル更新マテリアライズドビューなどのワークロードをサポートするステートフル処理

Basin Catalog

Basin Catalogは、昨年このファミリーで最初に公開した製品です。それ以来、何千人もの開発者がBasin Catalogを活用してきました。DuckDBがR2内の分析データに構造化された方法でアクセスできるようにするシンプルなユースケースから、ゼロエグレス料金と使いやすいAPIをフル活用した完全なエンタープライズデータ共有プラットフォームの構築まで、多岐にわたります。

Basin Catalogは、Apache Icebergを始める最も簡単な方法です。次のコマンドを実行するだけです。

npx wrangler basin catalog create CATALOG_NAME

瞬時に、テーブルのパフォーマンスと健全性を維持するために必要な定期メンテナンスを自動的に実行するフルマネージドのApache Iceberg RESTカタログを取得できます。

Data Platformを発表した当時、Basin Catalogは自動コンパクションを追加したばかりでした。それ以来、データのスケールに応じてテーブルを健全な状態に維持するための機能が進化してきました。

  • テーブルごとのコンパクションポリシーにより、各テーブルのアクセスパターンに基づいてターゲットファイルサイズを選択できます。
  • 自動スナップショット有効期限切れは、最低限の最新スナップショット数を保持しながら、保持ポリシーに従って古いIcebergスナップショットを削除します。
  • 未参照データファイルのクリーンアップは、個別のSparkメンテナンスジョブを必要とせず、スナップショットの有効期限が切れるとストレージを回収します。
  • マニフェスト最適化は、コンパクション前にパーティションごとに断片化したマニフェストを統合・クラスタリングし、クエリー計画中のメタデータI/Oを削減します。

Basin Catalogではいくつかの魅力的な機能を開発中です。予定している内容は以下の通りです。

  • クエリーパフォーマンス向上のために、コンパクションがデータを効率的にソートおよびクラスタリングする新しい方法
  • 名前空間とテーブルに対するより細かい認証制御
  • データ主権およびデータコンプライアンス要件に対応するための管轄区域サポート

Basin SQL

Basin SQLは、Basin Catalogに保存されたApache Icebergテーブル向けのサーバーレス分散クエリーエンジンです。大規模なデータセットの読み取りを目的として設計されており、Cloudflareのグローバルネットワーク全体にわたって自動的にスケールします。プロビジョニングが必要なクラスターやリソースはなく、あなたとあなたのエージェントがすぐにデータのクエリーを開始できるAPIがすぐに利用可能です。

ベータ公開時、Basin SQLは大規模なイベントおよび時系列テーブルのフィルタリングと探索に優れていました。この1年間で、Basin SQLは以下を含む数百の関数をサポートするよう進化しました。

  • 標準および近似集計、GROUP BY、HAVING、スキーマ探索コマンド
  • 文字列、タイムスタンプ、正規表現、暗号化、統計、配列、マップ、構造体にわたる190以上のスカラー関数と集計関数
  • CASE式、共通テーブル式、キャスト、算術演算、EXPLAIN
  • 内部、外部、セミ、アンチ結合、サブクエリー、自己結合、マルチテーブルクエリー
  • DISTINCT、UNION、INTERSECT、EXCEPT
  • ウィンドウ関数、QUALIFY、グルーピングセット、ロールアップ、キューブ
  • JSON関数のスイート

Pipelineがアプリケーションイベントを一つのテーブルに、アカウントデータを別のテーブルに届けるとします。これらのテーブルを結合し、顧客別のアクティビティを集計し、ウィンドウ関数で結果をランク付けし、1つのクエリーでランキングをフィルタリングできます。

WITH account_activity AS (
  SELECT
    a.plan,
    e.account_id,
    count(*) AS events,
    approx_distinct(e.user_id) AS active_users
  FROM analytics.events e
  JOIN analytics.accounts a
    ON e.account_id = a.account_id
  WHERE e.event_time >= '2026-09-01T00:00:00Z'
  GROUP BY a.plan, e.account_id
)
SELECT
  *,
  rank() OVER (PARTITION BY plan ORDER BY events DESC) AS activity_rank
FROM account_activity
QUALIFY rank() OVER (PARTITION BY plan ORDER BY events DESC) <= 10;

Basin SQLはWrangler、API、またはCloudflareダッシュボードの組み込みエディターから実行できます。エディターはシンタックスハイライトとオートコンプリート、名前空間とテーブルのブラウザー、クエリーの統計情報とプラン、エクスポート可能な結果を提供します。新しいテーブルから有用な答えを得るまでの時間を秒単位に短縮します。

チームはここで止まることなく、現在以下に取り組んでいます。

  • クエリーのパフォーマンスと効率を向上させる高度な統計情報とアダプティブスケジューリング
  • Basin SQLからの完全なデータ定義言語(DDL)サポート
  • VARIANT型およびジオスペーシャル型のサポートを含むIceberg V3サポート

今後の展望

当社の将来のビジョンは、データインフラが完全に抽象化されることです。ストレージフォーマット、製品、リソースはただの実装の詳細です。重要な成果を実現するために役立つ詳細ではありますが、本質的なことの妨げになりがちです。当社は、開発者がCREATEステートメントやCLIコマンドではなく、問いから始めるプラットフォームを目指して構築しています。そのビジョンの基盤を築き、今はそのビジョンに向けて以下を含む構築を進めています。

  • プラットフォーム全体での最新のApache Iceberg仕様のサポートにより、データのより柔軟な活用方法を解放
  • Cloudflareの開発者向けおよびオブザーバビリティ製品全体でゼロ設定接続を実現する、ワンクリックの取り込みソースとデスティネーション
  • 実際のクエリーパターンに基づいてデータを自動的に整理する、Basin Catalogの高度なアダプティブテーブルメンテナンス戦略
  • ますます複雑になる分析ワークロードに向けたSQL互換性、パフォーマンス、オブザーバビリティの継続的な拡張
  • リアルタイムでデータを継続的に処理し、データ内のシグナルに基づいてアクションをトリガーするためのさらなる方法
  • プラットフォーム全体でデータコンプライアンスおよびデータ主権ルールに準拠するためのツール

当社はオープン標準を使用した構築を続けます。オープンなフォーマットとプロトコルを使用し、依存しているプロジェクトに改善を貢献し、お客様のデータがより広いエコシステムで引き続き利用可能であることを確保します。

はじめに

Basin Pipelines、Basin Catalog、Basin SQLは本日より一般提供開始です。エンドツーエンドのプラットフォームとして一緒に使用することも、既存のアーキテクチャに合った部分のみを採用することも可能です。

入門チュートリアルに従って、イベントを取り込み、Basin CatalogでApache Icebergテーブルを作成し、Basin SQLでクエリーしてください。製品ガイド、料金、制限、インテグレーションについてはBasin ドキュメントをご覧ください。

既存のCloudflare Pipelines、R2 Data Catalog、R2 SQLの設定は引き続きご利用いただけます。

皆様が何を構築するかを楽しみにしております。Cloudflare Developer Discordでフィードバックをお寄せください。