OCI Streaming Serviceご紹介
日本オラクル株式会社
June, 2021
Safe harbor statement
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、
情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以
下の事項は、マテリアルやコード、機能を提供することを確約するものではないため、購買
決定を行う際の判断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊
社の裁量により決定され、変更される可能性があります。
Copyright © 2021, Oracle and/or its affiliates
2
Streamingの概要
Copyright © 2021, Oracle and/or its affiliates
3
4 Copyright © 2021, Oracle and/or its affiliates
増加し続けるデータとその活用
現代では、様々な種類のデータが生み出され続けている
• Web/Mobileアクティビティデータ
• システムから出力されるログ
• IoTセンサーログ
• システム内モジュール間の接続/通信
• etc.
これら大量のデータを活用するためには、
それらをリアルタイムに処理できるシステムが必要
5 Copyright © 2021, Oracle and/or its affiliates
新たな分散メッセージング基盤の必要性
大量のデータを処理するうえで、以前のメッセージングキューやETLツールなどの大量データ処理システムには課題があった
• 高コストなトランザクション制御により高スループットな処理の実現が難しい
• リアルタイムな処理とバッチ処理の両方で同じデータを扱いにくい
• 固有の技術に依存した処理や分かりにくいAPIによりシステム統合が難しい
これらの課題を解決するための新しいアーキテクチャが求められる
大量のメッセージをリアルタイム
に処理できるアーキテクチャ
任意のタイミングでデータを処理
するためのデータ永続化
分かりやすい APIによる、システ
ム統合と操作の簡易化
大量のデータストリームを処理するフルマネージドな分散メッセージングサービス
OCI Streaming Service (ストリーミング)
Copyright © 2021, Oracle and/or its affiliates.
6
■ ユースケース
ログやイベント、Web/MobileやIoTからのデータストリームを集約、
巨大なシステム内でのサービス間を繋ぐデータハブ
■ 特徴
複雑になりやすいサービス間やコンポーネント間の接続経路を、Streamingを経由
する形にすることでシンプルにすることが可能
Pub/Subモデルの採用により、データ通信を非同期に行い急激なデータ増加によ
るシステム負荷の上昇を抑制
Streamingに接続するためのAPIやSDKを提供
• Kafka互換APIを提供
■ 価格
データ転送(登録/取得)1GBごとに3
データの保持1GB×時間ごとに0.024
■ 関連するOracle Cloud Service
• Events (イベント・サービス)
• Oracle Functions (ファンクション)
• API Gateway
IoT Mobile/Web
Activities
App
Kafka
Client
Streaming
Streaming
Events API Gateway
Database System
Object Storage
Functions
大量のデータストリームをリアルタイムに処理するメッセージングサービス
• 3つの設定項目を入力するのみで、ストリームの作成が可能
• フルマネージドのため、インフラ運用や障害対応はクラウド側で実施
• データストリームは最大で7日保持可能
ユースケース
• 大量のログやイベントデータの収集
• Web/Mobileアクティビティデータの集約
• IoTデータストリームの処理
• 巨大なシステムにおけるモジュール間の通信
OCI Streaming Serviceの概要
Copyright © 2021, Oracle and/or its affiliates
7
8 Copyright © 2021, Oracle and/or its affiliates
OCI Streaming Serviceのメリット
コスト削減
• 管理コスト削減: 手動でのモニタリングやクラスタ管理などの排除
• 運用コスト削減: 実際に利用した分のみの従量課金制
リスク削減
• 高可用性: データはリージョン内の可用性ドメインに複製される
生産性向上
• Kafka互換性: Apache KafkaとのAPI互換性があり、既存のKafkaアプリケーションを利用可能
• OCIとの統合: ADW, Object Storageなど様々なOCIリソースとのコネクターを提供
Streamingのユースケース
Copyright © 2021, Oracle and/or its affiliates
9
ログやWebアクティビティデータの収集
Copyright © 2020, Oracle and/or its affiliates. All rights reserved
10
• システムログやユーザーのアクティビティログをメッセージとして収集
• リアルタイム/バッチ処理などの必要なタイミングに応じて収集したメッセージを利用
• Streamingによってデータの流れを一元化
アプリケーション
アクティビティデー
タ
システムログ
リアルタイム処
理
バッチ処理
アクティビティデー
タ
システムログ
アクティビティデー
タ
システムログ
モニタリング・
アラート
UI反映・UX向上
のための機能
機械学習による 分
析・レコメンド
ログ分析・キャパシティ
プランニング
Streaming
IoTデータのリアルタイム処理
Copyright © 2020, Oracle and/or its affiliates. All rights reserved
11
• IoT機器から流入する大量のデータを、Streamingが受け口となってキューイングする
• そのストリームを読み出して、ADWやカスタムアプリがそれを利用する
IoT Data OCI Streaming
Oracle
Big Data Service
Autonomous Data
Warehouse
IoT Apps
自動車やスマート家
電のセンサーからの
データをStreaming
に送信
メッセージとして
データをキューに入れ、
分散して保持する
OCI Streamingか
らリアルタイムにデー
タを取得/処理して
いく
分析モデルにより、
サジェストやアラー
トなどの結果を返
す
アプリがキューイ
ングされたデー
タを利用する
Streaming Big Data
Autonomous Data
Warehouse Cloud
Service
非同期メッセージ・ハブとしての利用
Copyright © 2020, Oracle and/or its affiliates. All rights reserved
12
システム内のモジュールや、MSAアプリのサービス間の接続経路を、シンプルで疎結合に保つ
例:EC システム
Marketing
Module
Payment
Module
CMS
Module
Support
Module
Cart
Module
Delivery
Module
Product
Module
Customer
Module
Order
Module
Backend
Module
Distribution
Module
Front Site
Streaming
StreamingとKafkaの互換性
Copyright © 2021, Oracle and/or its affiliates
13
14 Copyright © 2021, Oracle and/or its affiliates
Kafka互換API
Kafka互換のAPIを利用し、コードを変更せずに
StreamingでKafkaアプリを利用可能
利用可能API
• Produce
• Consume
• Group Management
• Kafka Connect
• 後述のKafka Connect構成を組み合わせて、
様々なOCIサービスと統合可能
• Admin APIs(一部)
15 Copyright © 2021, Oracle and/or its affiliates
StreamingとKafkaの差分
StreamingとKafkaにおける概念の対応表
API
• OCI SDKのAPIに加えてKafka互換のAPIを利用可能
• 一部のKafka APIは未実装
• Streaming APIを使ったアプリケーションとKafka互換APIを使ったアプリケーションは共存可能
クエリの実行
• KSQLのような、Streamingに対するクエリの実行は未サポート
Kafka互換API
Kafka
Client partition
stream
key
value
key
value
partition
topic
partition
message
OCI Streaming
Streaming Kafka
Stream Topic
Partition Partition
Key/Topic Key
Group Group
Kafka
Client
Group
Groupに関しても、
Kafkaと同様の動作
(詳しくは付録参照)
16 Copyright © 2021, Oracle and/or its affiliates
Kafka Connect
Kafka Connect
• Kafkaと他のリソースを接続するためのツール
• Consume/Produce時の定型的な手続きを汎用化したもの
Logs/
Other Files
Data Source
Logs/
Other Files
Data Sink
Kafka Connect
Database System
Object Storage
Database System
Object Storage
17 Copyright © 2021, Oracle and/or its affiliates
Kafka Connect構成
Kafka Connect構成
• StreamingでKafka Connectを利用する際に必要
• JDBC接続やストレージとの接続
• ATPやObject Storage(S3互換APIの利用)との連携が可能
2. SourceやSinkとなる リソー
スの作成
3. リソースに合わせた Kafka
Connectの構築
1. OCI上にKafka Connect構成
を作成
作成後表示される設定値を、
Kafka Connect構築時に利用
対応するリソースはConfluent Hub
などで確認可能
対応するKafka Connectを構築し、
コンテナなどを利用し起動しておく
Kafka Connect構成
の設定値
Kafka Connectを構築
Object Storage
Container Engine
For Kubernetes
Containers
Virtual Machine
Autonomous Database
18 Copyright © 2021, Oracle and/or its affiliates
参考:Kafka互換API、Kafka Connectを利用したDBとStreamingの連携
• DBにレコードを追加した際、同期的にStreamingに対してメッセージをpublish
• モジュール間のDB連携を、Streamingを介して行うことが可能に
Kafka
Connect
JDBC
App/
Database
Client
② レコードをDB
にinsert
① Kafka Connect
がDBをpolling
③ insertの内容を
Streamingにpublish
Database System
Streaming
まとめ
Copyright © 2021, Oracle and/or its affiliates
19
20 Copyright © 2021, Oracle and/or its affiliates
Oracle Streaming Serviceのまとめ
Streamingとは何か
• フルマネージド・分散メッセージングサービス
• 従量課金制により最適化される、リーズナブルなコスト
• OSS(Kafka/Kafka Connect)との互換性があり、ベンダー・ロックインなし
Streamingは何ができるのか
• 絶え間ないデータの受け口となることができる
• 受けたデータは、損失なく分散読み出しができる
• 結果として、システム内の接続経路をシンプルにできる
Streaming
Streamingご紹介

Streamingご紹介

  • 1.
  • 2.
  • 3.
    Streamingの概要 Copyright © 2021,Oracle and/or its affiliates 3
  • 4.
    4 Copyright ©2021, Oracle and/or its affiliates 増加し続けるデータとその活用 現代では、様々な種類のデータが生み出され続けている • Web/Mobileアクティビティデータ • システムから出力されるログ • IoTセンサーログ • システム内モジュール間の接続/通信 • etc. これら大量のデータを活用するためには、 それらをリアルタイムに処理できるシステムが必要
  • 5.
    5 Copyright ©2021, Oracle and/or its affiliates 新たな分散メッセージング基盤の必要性 大量のデータを処理するうえで、以前のメッセージングキューやETLツールなどの大量データ処理システムには課題があった • 高コストなトランザクション制御により高スループットな処理の実現が難しい • リアルタイムな処理とバッチ処理の両方で同じデータを扱いにくい • 固有の技術に依存した処理や分かりにくいAPIによりシステム統合が難しい これらの課題を解決するための新しいアーキテクチャが求められる 大量のメッセージをリアルタイム に処理できるアーキテクチャ 任意のタイミングでデータを処理 するためのデータ永続化 分かりやすい APIによる、システ ム統合と操作の簡易化
  • 6.
    大量のデータストリームを処理するフルマネージドな分散メッセージングサービス OCI Streaming Service(ストリーミング) Copyright © 2021, Oracle and/or its affiliates. 6 ■ ユースケース ログやイベント、Web/MobileやIoTからのデータストリームを集約、 巨大なシステム内でのサービス間を繋ぐデータハブ ■ 特徴 複雑になりやすいサービス間やコンポーネント間の接続経路を、Streamingを経由 する形にすることでシンプルにすることが可能 Pub/Subモデルの採用により、データ通信を非同期に行い急激なデータ増加によ るシステム負荷の上昇を抑制 Streamingに接続するためのAPIやSDKを提供 • Kafka互換APIを提供 ■ 価格 データ転送(登録/取得)1GBごとに3 データの保持1GB×時間ごとに0.024 ■ 関連するOracle Cloud Service • Events (イベント・サービス) • Oracle Functions (ファンクション) • API Gateway IoT Mobile/Web Activities App Kafka Client Streaming Streaming Events API Gateway Database System Object Storage Functions
  • 7.
    大量のデータストリームをリアルタイムに処理するメッセージングサービス • 3つの設定項目を入力するのみで、ストリームの作成が可能 • フルマネージドのため、インフラ運用や障害対応はクラウド側で実施 •データストリームは最大で7日保持可能 ユースケース • 大量のログやイベントデータの収集 • Web/Mobileアクティビティデータの集約 • IoTデータストリームの処理 • 巨大なシステムにおけるモジュール間の通信 OCI Streaming Serviceの概要 Copyright © 2021, Oracle and/or its affiliates 7
  • 8.
    8 Copyright ©2021, Oracle and/or its affiliates OCI Streaming Serviceのメリット コスト削減 • 管理コスト削減: 手動でのモニタリングやクラスタ管理などの排除 • 運用コスト削減: 実際に利用した分のみの従量課金制 リスク削減 • 高可用性: データはリージョン内の可用性ドメインに複製される 生産性向上 • Kafka互換性: Apache KafkaとのAPI互換性があり、既存のKafkaアプリケーションを利用可能 • OCIとの統合: ADW, Object Storageなど様々なOCIリソースとのコネクターを提供
  • 9.
  • 10.
    ログやWebアクティビティデータの収集 Copyright © 2020,Oracle and/or its affiliates. All rights reserved 10 • システムログやユーザーのアクティビティログをメッセージとして収集 • リアルタイム/バッチ処理などの必要なタイミングに応じて収集したメッセージを利用 • Streamingによってデータの流れを一元化 アプリケーション アクティビティデー タ システムログ リアルタイム処 理 バッチ処理 アクティビティデー タ システムログ アクティビティデー タ システムログ モニタリング・ アラート UI反映・UX向上 のための機能 機械学習による 分 析・レコメンド ログ分析・キャパシティ プランニング Streaming
  • 11.
    IoTデータのリアルタイム処理 Copyright © 2020,Oracle and/or its affiliates. All rights reserved 11 • IoT機器から流入する大量のデータを、Streamingが受け口となってキューイングする • そのストリームを読み出して、ADWやカスタムアプリがそれを利用する IoT Data OCI Streaming Oracle Big Data Service Autonomous Data Warehouse IoT Apps 自動車やスマート家 電のセンサーからの データをStreaming に送信 メッセージとして データをキューに入れ、 分散して保持する OCI Streamingか らリアルタイムにデー タを取得/処理して いく 分析モデルにより、 サジェストやアラー トなどの結果を返 す アプリがキューイ ングされたデー タを利用する Streaming Big Data Autonomous Data Warehouse Cloud Service
  • 12.
    非同期メッセージ・ハブとしての利用 Copyright © 2020,Oracle and/or its affiliates. All rights reserved 12 システム内のモジュールや、MSAアプリのサービス間の接続経路を、シンプルで疎結合に保つ 例:EC システム Marketing Module Payment Module CMS Module Support Module Cart Module Delivery Module Product Module Customer Module Order Module Backend Module Distribution Module Front Site Streaming
  • 13.
    StreamingとKafkaの互換性 Copyright © 2021,Oracle and/or its affiliates 13
  • 14.
    14 Copyright ©2021, Oracle and/or its affiliates Kafka互換API Kafka互換のAPIを利用し、コードを変更せずに StreamingでKafkaアプリを利用可能 利用可能API • Produce • Consume • Group Management • Kafka Connect • 後述のKafka Connect構成を組み合わせて、 様々なOCIサービスと統合可能 • Admin APIs(一部)
  • 15.
    15 Copyright ©2021, Oracle and/or its affiliates StreamingとKafkaの差分 StreamingとKafkaにおける概念の対応表 API • OCI SDKのAPIに加えてKafka互換のAPIを利用可能 • 一部のKafka APIは未実装 • Streaming APIを使ったアプリケーションとKafka互換APIを使ったアプリケーションは共存可能 クエリの実行 • KSQLのような、Streamingに対するクエリの実行は未サポート Kafka互換API Kafka Client partition stream key value key value partition topic partition message OCI Streaming Streaming Kafka Stream Topic Partition Partition Key/Topic Key Group Group Kafka Client Group Groupに関しても、 Kafkaと同様の動作 (詳しくは付録参照)
  • 16.
    16 Copyright ©2021, Oracle and/or its affiliates Kafka Connect Kafka Connect • Kafkaと他のリソースを接続するためのツール • Consume/Produce時の定型的な手続きを汎用化したもの Logs/ Other Files Data Source Logs/ Other Files Data Sink Kafka Connect Database System Object Storage Database System Object Storage
  • 17.
    17 Copyright ©2021, Oracle and/or its affiliates Kafka Connect構成 Kafka Connect構成 • StreamingでKafka Connectを利用する際に必要 • JDBC接続やストレージとの接続 • ATPやObject Storage(S3互換APIの利用)との連携が可能 2. SourceやSinkとなる リソー スの作成 3. リソースに合わせた Kafka Connectの構築 1. OCI上にKafka Connect構成 を作成 作成後表示される設定値を、 Kafka Connect構築時に利用 対応するリソースはConfluent Hub などで確認可能 対応するKafka Connectを構築し、 コンテナなどを利用し起動しておく Kafka Connect構成 の設定値 Kafka Connectを構築 Object Storage Container Engine For Kubernetes Containers Virtual Machine Autonomous Database
  • 18.
    18 Copyright ©2021, Oracle and/or its affiliates 参考:Kafka互換API、Kafka Connectを利用したDBとStreamingの連携 • DBにレコードを追加した際、同期的にStreamingに対してメッセージをpublish • モジュール間のDB連携を、Streamingを介して行うことが可能に Kafka Connect JDBC App/ Database Client ② レコードをDB にinsert ① Kafka Connect がDBをpolling ③ insertの内容を Streamingにpublish Database System Streaming
  • 19.
    まとめ Copyright © 2021,Oracle and/or its affiliates 19
  • 20.
    20 Copyright ©2021, Oracle and/or its affiliates Oracle Streaming Serviceのまとめ Streamingとは何か • フルマネージド・分散メッセージングサービス • 従量課金制により最適化される、リーズナブルなコスト • OSS(Kafka/Kafka Connect)との互換性があり、ベンダー・ロックインなし Streamingは何ができるのか • 絶え間ないデータの受け口となることができる • 受けたデータは、損失なく分散読み出しができる • 結果として、システム内の接続経路をシンプルにできる Streaming