メインコンテンツへジャンプ
Platform blog

Original Blog,   翻訳: junichi.maruyama

Databricks Lakehouse PlatformGoogle Pub/Subコネクタの正式リリースをお知らせします。この新しいコネクタは、外部データソースコネクタの広範なエコシステムに追加され、Databricksから直接Google Pub/Subに簡単に登録し、リアルタイムでデータを処理・分析することができます。

Google Pub/Sub connectorを使用すると、Pub/Subトピックを介して流れる豊富なリアルタイムデータを簡単に利用することができます。IoTデバイスからのストリーミングデータ、ユーザーインタラクション、アプリケーションログなど、Pub/Subストリームをサブスクライブする機能は、リアルタイム分析および機械学習のユースケースの可能性を広げます:

Google Pub/Sub connector

また、Pub/Subコネクタを使用して、Google Cloudからのリアルタイムデータを燃料とする低レイテンシーの運用ユースケースを推進することができます:

Pub/Sub connector

このブログでは、Google Pub/Sub connectorDatabricks Lakehouse Platform.のStructured Streamingを組み合わせた主な利点について説明します。

Exactly-Once 処理セマンティクス

ストリーミングデータを処理する場合、データの整合性は非常に重要です。DatabricksのGoogle Pub/Subコネクタは、すべてのレコードが(サブスクライブ側の)重複やデータ損失なしに処理されるような、正確な処理セマンティクスを保証し、Delta Lakeシンクと組み合わせることで、データパイプライン全体に対してexactly-once配信を実現します。つまり、大量のリアルタイムデータを扱う場合でも、データパイプラインを信頼性、正確性、低レイテンシーで運用することができるのです。

構成が簡単

データエンジニアがストリーミングデータを効果的に扱えるようにするには、シンプルさが重要です。そのため、Google Pub/Subコネクタは、PythonやScalaを使用してSpark Structured Streamingとの接続を簡単に設定できるように、ユーザーフレンドリーな構文で設計しました。サブスクリプション、トピック、プロジェクトの詳細を提供することで、接続を素早く確立し、Pub/Subデータストリームの消費をすぐに開始することができます。

Code example:

authOptions =
  {"clientId" -> clientId,
      "clientEmail" -> clientEmail,
      "privateKey" -> privateKey,
      "privateKeyId" -> privateKeyId}

query = spark.readStream
  .format("pubsub")
  // we will create a Pubsub subscription if none exists with this id
  .option("subscriptionId", "mysub") // required
  .option("topicId", "mytopic") // required
  .option("projectId", "myproject") // required
  .options(authOptions)
  .load()

データセキュリティの強化、きめ細かなアクセスコントロール

データのセキュリティは、どの組織にとっても最優先事項です。Databricksでは、Google Pub/Sub接続を安全に認証するためにシークレットを使用することを推奨します。セキュアな接続を確立するためには、以下のオプションが必要です:

  • clientID
  • clientEmail
  • privateKey
  • privateKeyId

セキュアな接続が確立されたら、データのプライバシーと制御を維持するためにアクセス制御を微調整することが不可欠です。Pub/Sub コネクタはロールベースアクセスコントロール(RBAC)をサポートしており、異なるユーザーまたはグループに特定の権限を付与することで、許可された個人のみがデータにアクセスし処理することができます。以下の表は、構成された認証情報に必要な役割について説明しています:

RolesRequired / OptionalHow it's used
roles/pubsub.viewer or roles/viewerRequiredサブスクリプションが存在するかどうかをチェックし、サブスクリプションを取得する
roles/pubsub.subscriberRequiredサブスクリプションからデータを取得する
roles/pubsub.editor or roles/editorOptionalサブスクリプションが存在しない場合にその作成を可能にし、また、ストリーム終了時にサブスクリプションを削除するためにdeleteSubscriptionOnStreamStopを使用できるようにします。

スキーママッチング

読み込んだレコードと、それがストリームのDataFrameスキーマにどのようにマッピングされているかを知ることは、非常にわかりやすい。Google Pub/Sub connectorは、受信したデータをマッチングさせ、開発プロセス全体を簡素化します。DataFrameスキーマは、以下のようにPub/Subからフェッチされるレコードにマッチします:

FieldType
messageIdStringType
payloadArrayType[ByteType]
attributesStringType
publishTimestampInMillisLongType

NOTE: レコードには、空でないペイロードフィールドか、少なくとも一つの属性が含まれていなければならない

レイテンシーとコストに対する柔軟性

Spark Structured Streamingでは、Google Pub/Subソースからのデータを段階的に処理することができ、各マイクロバッチのトリガー間隔を制御するオプションが追加されました。これにより、データの鮮度を維持するために必要な頻度でデータを取り込み、処理しながら、コストをコントロールする柔軟性が高まります。Trigger.AvailableNow()オプションは、利用可能なすべてのレコードを増分バッチとして消費し、maxBytesPerTriggerなどのオプションでバッチサイズを構成するオプションを提供します(サイズオプションはデータソースによって異なることに注意してください)。Spark Structured StreamingのPub/Subとインクリメンタルデータ処理の設定オプションの詳細については、製品ドキュメントを参照してください。

ストリーミングメトリクスのモニタリング

データストリームに関する洞察を提供するために、Spark Structured Streamingには進捗状況メトリクスが含まれています。これらのメトリクスには、フェッチされて処理できるようになったレコードの数、それらのレコードのサイズ、ストリームが開始されてから見られた重複の数などが含まれます。これにより、ストリーミングジョブの進捗とパフォーマンスを追跡し、時間の経過とともにチューニングすることができます。以下はその一例です:

"metrics" : {
  "numDuplicatesSinceStreamStart" : "1",
  "numRecordsReadyToProcess" : "1",
  "sizeOfRecordsReadyToProcess" : "8"
}

カスタマーサクセス

Xiaomiは、IoTプラットフォームで接続されたスマートフォンやスマートハードウェアを中核とする家電およびスマート製造企業です。世界最大級のスマートフォンメーカーであり、Fortune Global 500の最年少メンバーでもあるXiaomiは、Pub/Subコネクタの初期プレビュー顧客の1つでした。Xiaomiの国際インターネット事業部のシニアスタッフソフトウェアエンジニアであるPan Zhangが、Pub/Subコネクタが彼のチームに与えた技術的およびビジネス的影響について語ります:

"このコネクタは、データの取り込みと統合の処理方法に革命をもたらすものであり、私たちはこのコネクタに感激しています。Databricksとの提携により、これらの重要な領域で必要とされる労力が大幅に削減されました。 このコラボレーションは、当社のデータ能力を向上させ、技術的進歩の最前線に立ち、当社のエコシステム全体のイノベーションを促進することができます。さらに、このコラボレーションは、Xiaomiの国際インターネットビジネスにおいて、Google Cloud Platform(GCP)サービスと統合する際に、Time to Market(TTM)の短縮に役立つことが証明されています。Pub/Subコネクタはプロセスを合理化し、GCPサービスのパワーを迅速に活用し、顧客に革新的なソリューションを提供することを可能にします。 統合プロセスを加速することで、新機能や機能強化の展開を早め、最終的にユーザーにシームレスで効率的な体験を提供することができます。"

Melexis社は、車載用センサーと高度なミックスドシグナル半導体ソリューションを専門とするベルギーのマイクロエレクトロニクスメーカーで、Google Pub/Subコネクタですでに初期の成功を収めているもう一人のお客様です。Melexisのデータ&アナリティクスチームリーダーであるDavid Van Hemelenは、Pub/SubコネクタとDatabricksのパートナーシップに対するチームの満足度を要約しています:

"私たちは、Pub/Subセットアップから大量の製造データをDatabricksプラットフォームにストリーミングして処理することで、生産監視、設備効率分析、AIイニシアティブの拡張のためにリアルタイムの洞察を活用できるようにしたいと考えていました。 DatabricksチームによるガイダンスとPub/Subコネクタ自体は、機能性とパフォーマンスの点で私たちの期待を上回るもので、このプロジェクトはスムーズでテンポの良い実装プロジェクトとなりました。"

 

今すぐ始める

Google Pub/Sub コネクタは Databricks Runtime 13.1 から利用可能です。開始方法の詳細については、「Subscribe to Google Pub/Sub」ドキュメントを参照してください。

Databricksでは、統合機能を強化し、より強力なデータストリーミング機能を提供し、統合されたLakehouse Platformからお客様のリアルタイム分析、AI、および運用アプリケーションを強化するために、常に取り組んでいます。また、Delta Live TablesのGoogle Pub/Subのサポートもまもなく発表する予定ですので、さらなるアップデートにご期待ください!

Databricks Lakehouse Platformでのストリーミングに関する数多くのお客様の成功事例をご覧いただくか、ご希望のクラウド上でDatabricksを無料でテストドライブしてください。

Databricks 無料トライアル

関連記事

Company blog

Apache Spark’s Structured Streaming with Amazon Kinesis on Databricks

August 9, 2017 Jules Damji による投稿 in Databricks ブログ
On July 11, 2017, we announced the general availability of Apache Spark 2.2.0 as part of Databricks Runtime 3.0 (DBR) for the Unified...
Engineering blog

Apache Spark Structured Streamingでレイテンシが1秒未満になりました

Original: Latency goes subsecond in Apache Spark Structured Streaming 翻訳: saki.kitaoka Apache Spark Structured Streaming は、オープンソースのストリーム処理プラットフォームの代表格です。 the Databricks Lakehouse Platform のストリーミングを支える中核技術でもあり、バッチ処理とストリーム処理のための統一APIを提供しています。ストリーミングの採用が急速に進む中、多様なアプリケーションがストリーミングを活用してリアルタイムな意思決定を行いたいと考えています。これらのアプリケーションのうち、特に運用型のアプリケーションでは、より低いレイテンシーが要求されます。Sparkの設計は、高いスループットと使いやすさを低コストで実現する一方で、サブセカンドレイテンシーに最適化されていません。 本ブログでは、Structured Streamingの固有の処理レイテンシーを低減す
Platform blog

Low-latency Streaming Data Pipelines with Delta Live Tables and Apache Kafka

August 9, 2022 Frank Munz による投稿 in 製品
Delta Live Tables (DLT) is the first ETL framework that uses a simple declarative approach for creating reliable data pipelines and fully manages...
Platform blog

Streaming in Production: Collected Best Practices

Releasing any data pipeline or application into a production state requires planning, testing, monitoring, and maintenance. Streaming pipelines are no different in this...
Platform blog

Streaming in Production: Collected Best Practices, Part 2

In our two-part blog series titled "Streaming in Production: Collected Best Practices," this is the second article. Here we discuss the "After Deployment"...
プラットフォームブログ一覧へ