Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クラウド時代のデータアクセス仮想化のススメ ~リアルタイムデータ連携を紐解きつつ~

クラウド時代のデータアクセス仮想化のススメ ~リアルタイムデータ連携を紐解きつつ~

jjug CCC 2022 の発表内容です。
増え続けるSaaS のAPI に接続するために、「データアクセス仮想化」が熱い!
そもそものデータ連携のリアルタイム連携とバッチ連携を紐解きながら、データアクセスの仮想化について考えていきます。

CData Software Japan

November 27, 2022
Tweet

More Decks by CData Software Japan

Other Decks in Technology

Transcript

  1. © 2022 CData Software Japan, LLC | www.cdata.com/jp About Speaker

    CData Software Japan session speaker 疋田 圭介 •CData Software Japan 合同会社 代表社員 職務執行者 経歴 •業務データ活用一筋15年+ •管理会計、ビジネスプラン、予実管理 •CData Software の日本オペレーションの立ち上げから •金融機関10年(内、インドネシア5年) •→ソフトウェアコンポーネント10年 @hornets79 @keisuke.hikita.5 https://qiita.com/jonathanh
  2. © 2022 CData Software Japan, LLC | www.cdata.com/jp JDBC、ODBC Driver

    をたくさん作っている会社 Drivers for NoSQL, Big Data, & SaaS Connectivity CRMおよびマーケティング自動化 会計システム コラボレーションおよびERP オンプレミスおよびクラウドDB ドキュメントおよびファイル形式 ソーシャルネットワーキング ネットワーキングおよび認証 電子商取引 その他
  3. © 2022 CData Software Japan, LLC | www.cdata.com/jp 「データ連携」って、フワッとしてますよね •Interface

    = 接続する部分・使用、連携 •Connect = 接続すること、連携 •Access = アクセス、接続すること、連携 •Integration = 統合すること、連携 •Sync = 同期すること、連携 •Pipeline = 接続してデータを移動させる こと、連携 •File Upload/Download = ファイル連携 •File Transfer = ファイル連携 •ETL = データ連携 •EAI = アプリケーション間連携 だいたい、システム以外の シーンでも「連携しといて」 は、フワッとしてますね。。。 ←API ができることはこれだけ
  4. © 2022 CData Software Japan, LLC | www.cdata.com/jp そんなデータ連携についての今日の話は 「リアルタイム連携」からの「データアクセス仮想化」

    リアルタイム連携 • アプリから直接 • 仮想化 バッチ連携 • データを保存して加工 • ETL 的
  5. © 2022 CData Software Japan, LLC | www.cdata.com/jp 複数データソースへのリアルタイム連携には 「データアクセス仮想化」を!

    ユーザー・ツールが利用している"言語"を 即座に翻訳してくれるインターフェース SELECT * FROM Tweets HTTP GET /tweet JSON {“Text”:”Hello”} Dataset | Text | | Hello |
  6. © 2022 CData Software Japan, LLC | www.cdata.com/jp 今日のお話の内容 •

    API 連携のリアルタイム連携とバッチ連携 • リアルタイム連携とバッチ連携のメリット/デメリット • リアルタイム連携=データアクセス仮想化が必要 • データアクセス仮想化は今アツい! • データアクセスの仮想化の活用例-CData Connect Cloud
  7. © 2022 CData Software Japan, LLC | www.cdata.com/jp 今日のお話の内容 •

    API 連携のリアルタイム連携とバッチ連携 • リアルタイム連携とバッチ連携のメリット/デメリット • リアルタイム連携=データアクセス仮想化が必要 • データアクセス仮想化は今アツい! • データアクセスの仮想化の活用例-CData Connect Cloud
  8. © 2022 CData Software Japan, LLC | www.cdata.com/jp BI ツールからTwitter

    のデータを使う場合に どうしますか?
  9. © 2022 CData Software Japan, LLC | www.cdata.com/jp バッチ連携: ETL

    でデータを保存して、BI からアクセス • データは一旦、DB・ストレージに保存される • Python 回してS3、やCSV おとしました、も含まれる • 定期実行 ETL/ELT DB
  10. © 2022 CData Software Japan, LLC | www.cdata.com/jp これもバッチ連携: プログラムでAPI

    を呼び出してCSV を吐き出す もちろん手動でのCSV ダウンロード&保存もバッチ連携
  11. © 2022 CData Software Japan, LLC | www.cdata.com/jp リアルタイム連携: 直接ツールから直接データソースを呼び出す

    • 直接ツールからデータソースを呼び出す • リアルタイム、ダイレクト、Live 接続とも • ツール側にコネクタがあるとできる(実際はTwitter ネイティブコネクタないが)
  12. © 2022 CData Software Japan, LLC | www.cdata.com/jp これもリアルタイム連携:間にJDBC Driver

    JDBC Driver • JDBC Driver、ODBC Driver、ADO.NET Provider などのドライバー • クエリの起点はBI ツール側 • データは間に保存されない
  13. © 2022 CData Software Japan, LLC | www.cdata.com/jp これもリアルタイム連携:Prep 系のツールを使う

    ODBC Driver • データのスキーマ操作はするが、データ自体を保存しなければリアルタ イム Preparation Tool
  14. © 2022 CData Software Japan, LLC | www.cdata.com/jp これもリアルタイム連携: 間にSQL

    Server のリンクサーバー ODBC Driver SQL Server Linked Server • クエリの起点はBI ツール側 • データは間に保存されない • 間でプロトコル変わっているけど、データは直通 TDS (SQL Server)
  15. © 2022 CData Software Japan, LLC | www.cdata.com/jp これもリアルタイム型: データアクセス仮想化サービス

    CData Connect TDS (SQL Server) • クエリの起点はBI ツール側 • データは間に保存されない • 間でプロトコル変わっているけど、データは直通
  16. © 2022 CData Software Japan, LLC | www.cdata.com/jp みなさん、どっちのイメージでしたか? •

    バッチ連携の方をイメージする人の方が多そう • でも多くのツールでは多様なSaaS / DB を直接リアルタイムでクエリす る機能を強化している • ユーザーも自然にリアルタイム型で連携してデータを使っている
  17. © 2022 CData Software Japan, LLC | www.cdata.com/jp 今日のお話の内容 •

    API 連携のリアルタイム連携とバッチ連携 • リアルタイム連携とバッチ連携のメリット/デメリット • リアルタイム連携=データアクセス仮想化が必要 • データアクセス仮想化は今アツい! • データアクセスの仮想化の活用例-CData Connect Cloud
  18. © 2022 CData Software Japan, LLC | www.cdata.com/jp リアルタイム連携 ツールからのデータの呼

    び出し データの動きとプロセス が逆 バッチ連携 ETL ツールのイメージが 強いとわかりやすい データが順番に動く メリット・デメリット:一般的なわかりやすさ
  19. © 2022 CData Software Japan, LLC | www.cdata.com/jp ETL/ELT JDBC

    Driver メリット・デメリット:一般的なわかりやすさ バッチ連携 リアルタイム型 ①呼び出す ②加工する ③DB にロード ④保管 ⑤クエリ ①クエリ ②パース
  20. © 2022 CData Software Japan, LLC | www.cdata.com/jp メリット・デメリット:リアルタイム性 リアルタイム連携

    データ取得時(リフレッ シュ時)にリアルタイム データを取得可能 バッチ連携 バッチで時間差あり ツール側からデータのリ フレッシュができない (間隔は短くできるが)
  21. © 2022 CData Software Japan, LLC | www.cdata.com/jp ETL/ELT JDBC

    Driver バッチ連携 リアルタイム連携 BI から更新(リフ レッシュ)可能 BI から更新(リフ レッシュ)不可 リフレッシュはETL で実行 メリット・デメリット:リアルタイム性
  22. © 2022 CData Software Japan, LLC | www.cdata.com/jp メリット・デメリット:ホスティング、インフラ リアルタイム連携

    間にデータを保管せず DB やストレージが不要 バッチ連携 間にストレージやDB ホスティングやサービス 利用が必要
  23. © 2022 CData Software Japan, LLC | www.cdata.com/jp ETL/ELT JDBC

    Driver バッチ連携 リアルタイム連携 サーバー or サービスが必要 間になにもインフラがない (リンクサーバーではインフラ必要) メリット・デメリット:ホスティング、インフラ
  24. © 2022 CData Software Japan, LLC | www.cdata.com/jp メリット・デメリット:容量の大きいデータ(API 制限)

    リアルタイム連携 基本向いてない 全件取得がベース (ダイレクトクエリが使 えれば回避も) バッチ連携 差分でのデータ取得が可 能であり、大容量データ でも扱い可
  25. © 2022 CData Software Japan, LLC | www.cdata.com/jp ETL/ELT JDBC

    Driver バッチ連携 全件取得 全件リフレッシュ (ツラい) 差分で保存できる (クエリ減らせる) 超大容量だとダイレクトクエリ(サー バー側フィルタリング)もよい メリット・デメリット:容量の大きいデータ(API 制限) リアルタイム連携
  26. © 2022 CData Software Japan, LLC | www.cdata.com/jp メリット・デメリット: データ加工や複数データソース統合

    リアルタイム連携 複雑なデータ加工には不 向き 統合などもあまり向いて いない バッチ連携 データを保存後に別プロ セスで加工することが容 易。マスター統合、デー タの統合、ビュー作成
  27. © 2022 CData Software Japan, LLC | www.cdata.com/jp ETL/ELT バッチ連携

    複雑な加工苦手 統合もマスター次第 加工・統合得意 加工・統合得意 メリット・デメリット: データ加工や複数データソース統合 リアルタイム連携
  28. © 2022 CData Software Japan, LLC | www.cdata.com/jp メリット・デメリット:パフォーマンス リアルタイム連携

    原則遅い API コール バッチ連携 DWH のパフォーマンス やロケーションにもよる が原則早い
  29. © 2022 CData Software Japan, LLC | www.cdata.com/jp ETL/ELT バッチ連携

    リアルタイム型 レイテンシあり 基本早い DB-BI 間 だけの問題 インターネット経由 メリット・デメリット:パフォーマンス
  30. © 2022 CData Software Japan, LLC | www.cdata.com/jp メリット・デメリット:実装の難易度 リアルタイム連携

    コネクタがある:簡単 コネクタ開発から:大変 バッチ連携 DWH を管理する手間 しっかり作れる
  31. © 2022 CData Software Japan, LLC | www.cdata.com/jp メリット・デメリット:管理面・セキュリティ リアルタイム連携

    個々のユーザーによる野 良データセット サービスの利用権限をそ のまま適用可能 バッチ連携 全社共有のデータセット 利用権限はDWH で再設 定必要
  32. © 2022 CData Software Japan, LLC | www.cdata.com/jp ETL/ELT バッチ連携

    管理しやすい 全社利用データセット 権限を透過可能 データセットは野良化 メリット・デメリット:管理面・セキュリティ リアルタイム連携
  33. © 2022 CData Software Japan, LLC | www.cdata.com/jp エンドユーザーであれば、向き不向きで選んでOK •

    単一のSaaS で、データが千件程度→リアルタイム連携でOK • MA やCRM の数十~数百万件のデータ→バッチ連携一択 • 複数のSaaS でデータマート(ビュー)を作って分析→バッチ連携一択 • 探索的に自分の手元でいろんなデータを見たい→リアルタイムでOK • AppSheet などのノーコードアプリツールから→リアルタイム向き
  34. © 2022 CData Software Japan, LLC | www.cdata.com/jp ノーコードとかツールベンダーなら リアルタイム連携=仮想化はやるべき

    • 内臓コネクタによるリアルタイム連携機能(中で仮想化)がどん どん主流になってきている • BI ツールであれば、ユーザーに外部ETL での連携をゆだねるこ ともOK だが、やっぱり導入の足かせにはなる • iPaaS、クラウドRPA、ノーコード/ローコードアプリ開発ツール
  35. © 2022 CData Software Japan, LLC | www.cdata.com/jp 今日のお話の内容 •

    API 連携のリアルタイム連携とバッチ連携 • リアルタイム連携とバッチ連携のメリット/デメリット • リアルタイム連携=データアクセス仮想化が必要な理由 • データアクセス仮想化は今アツい! • データアクセスの仮想化の活用例-CData Connect Cloud
  36. © 2022 CData Software Japan, LLC | www.cdata.com/jp データアクセスの仮想化とは? ユーザー・ツールが利用している"言語"を

    即座に翻訳してくれるインターフェース SELECT * FROM Tweets HTTP GET /tweet JSON {“Text”:”Hello”} Dataset | Text | | Hello |
  37. © 2022 CData Software Japan, LLC | www.cdata.com/jp 仮想化しないで複数のコネクタ実装をすると たぶん死ぬ

    • 連携が必要なSaaS・クラウドサービスが多すぎる • API とかREST と言われても実装のバリエーションが多い • なにもしないと壊れる
  38. © 2022 CData Software Japan, LLC | www.cdata.com/jp 企業データの種類が多様化し、サイロ化 Specialized

    & Emerging Tech Smartsheet, Reckon, ExactOnline, MailChimp Relational / RDBMS MySQL, SQL, PostgreSQL Universal SaaS & Cloud Storage Salesforce, SAP, Dynamics, BigQuery, MongoDB Vertical Apps & Services Marketo, Eloqua, Splunk, ServiceNow, HubSpot
  39. © 2022 CData Software Japan, LLC | www.cdata.com/jp Trend: 企業で使うSaaS

    の数は急増 # of SaaS Apps used in Corporate is increasing • 1企業で使うSaaS 種類の平均が110種類 • アメリカのトレンドに日本も追従し、現 在は1社10種類程度のSaaS 利用でも、数 年後に数十種類になるのではないか https://stateofsaasops.bettercloud.com/
  40. © 2022 CData Software Japan, LLC | www.cdata.com/jp 仮想化しないで複数のコネクタ実装をすると死ぬ •

    連携が必要なSaaS・クラウドサービスが多すぎる • API とかREST と言われても実装のバリエーションが多い • なにもしないと壊れる
  41. © 2022 CData Software Japan, LLC | www.cdata.com/jp インターフェースそれぞれの特性を 考慮しなければいけない

    Protocols Data Model Metadata Authentication Capabilities SOAP REST OData Static Dynamics Hybrid Relational NoSQL Raw Stores Basic API Token OAuth Filter Aggregations Joins
  42. © 2022 CData Software Japan, LLC | www.cdata.com/jp 例えば「Salesforce」の「REST API」

    実体はSOQLというSalesforce内部で の独自規格のSQLを発行するAPI
  43. © 2022 CData Software Japan, LLC | www.cdata.com/jp 仮想化しないで複数のコネクタ実装をすると死ぬ •

    連携が必要なSaaS・クラウドサービスが多すぎる • API とかREST と言われても実装のバリエーションが多い • なにもしないと壊れる
  44. © 2022 CData Software Japan, LLC | www.cdata.com/jp Amazon Marketplace

    API アップデートで API仕様が大幅変更・古いAPI終了告知が半年前*
  45. © 2022 CData Software Japan, LLC | www.cdata.com/jp 軽減税率対応が全EC、CRM で発生

    注文データや商品マスタなど ほとんどのAPIリソースの項目が追加・更新
  46. © 2022 CData Software Japan, LLC | www.cdata.com/jp 仮想化しないで複数のコネクタ実装をすると死ぬ •

    API 連携の実装および維持はかなり複雑&ハード • 共通化して、コンポーネント化しないと苦しい • いわゆるコネクタSDK を公開している例も多い • 内部でもSDK を標準化(=仮想化レイヤー)として持っている • おなじみのJDBC は、皆さんが一番知っている仮想化
  47. © 2021 CData Software Japan, LLC | www.cdata.com/jp 1. About

    CData Software データアクセス仮想化は何をしているの?
  48. © 2022 CData Software Japan, LLC | www.cdata.com/jp プロトコルの擬態 TDS/MySQLプロトコル等に擬態して

    ・リクエストを受け取り ・レスポンスを返却する それぞれのプロトコル仕様書で書かれている プロセスを網羅して、TCP/IP上で やり取りできる実装を提供 https://docs.microsoft.com/en-us/openspecs/sql_server_protocols/ms-sstds/26d043af-8ece-450b-a1db-d9c114f7c16a
  49. © 2022 CData Software Japan, LLC | www.cdata.com/jp 内部プロセスの隠蔽 インターフェース側の仕様と帳尻を合わせるため

    のネイティブAPI側とのやり取りを行う ・プロトコル側のレスポンスのパース ・ネイティブAPI側へのリクエストの組み立て ・API処理のハンドリング(時にはジョブの実行 状態チェック等も) ・レスポンス処理のパース ・プロトコル側への返却値としての組み立て (ただし製品による。ビッグデータ処理系等)
  50. © 2022 CData Software Japan, LLC | www.cdata.com/jp もう少し噛み砕いて言えば ネイティブなAPIに直接アクセスするのではなく

    異なる共通のプロトコル・仕様のレイヤーを通じて それらのAPIにアクセスする技術
  51. © 2022 CData Software Japan, LLC | www.cdata.com/jp 今日のお話の内容 •

    API 連携のリアルタイム連携とバッチ連携 • リアルタイム連携とバッチ連携のメリット/デメリット • リアルタイム連携=データアクセス仮想化が必要な理由 • データアクセス仮想化は今アツい! • データアクセスの仮想化の活用例-CData Connect Cloud
  52. © 2022 CData Software Japan, LLC | www.cdata.com/jp 実はアツい仮想化:クラウドベンダー系(Microsoft) PolyBase

    Azure Synapse Link for Azure Cosmos DB Dynamics 365 Virtual Entities https://docs.microsoft.com/ja-jp/sql/relational- databases/polybase/polybase-guide https://docs.microsoft.com/ja-jp/azure/cosmos- db/synapse-link https://docs.microsoft.com/en- us/powerapps/developer/data-platform/virtual- entities/get-started-ve 外部データ ソースからデータを 読み取る Transact-SQL クエリ を SQL Server インスタンスで 処理。 Azure Cosmos DB のオペレー ショナル データに対してリアル タイムに近い分析をAzure SynapseからL実行可能。 外部システムに存在するデータを Dynamics 365 内のエンティ ティとしてシームレスに表すこと で、データの重複なしに、外部シ ステムに存在するデータの統合。
  53. © 2022 CData Software Japan, LLC | www.cdata.com/jp 実はアツい仮想化:クラウドベンダー系(AWS・GCP) Babelfish

    for Aurora PostgreSQL Google BigQuery Omni Amazon Athena https://aws.amazon.com/jp/rds/aurora/babelfish/ https://aws.amazon.com/jp/athena/ https://cloud.google.com/blog/products/data- analytics/introducing-bigquery-omni Aurora PostgreSQLにSQL Server互換レイヤを実装。 インタラクティブなクエリサービ スで、Amazon S3 内のデータを 標準 SQL を使用して簡単に分析 「BigQueryエンジン」を、AWS やAzure上で動かし、複数のクラ ウドにあるデータを分析可能に。
  54. © 2022 CData Software Japan, LLC | www.cdata.com/jp 実はアツい仮想化:独立ベンダー系 CData

    Connect Denodo TIBCO Data virtualization https://www.cdata.com/jp/connect/ https://www.tibco.com/products/data-virtualization https://www.denodo.com/ja 各種API をクラウド上の仮想 RDB エンドポイントにし、 TDS・MySQLプロトコルで接続 を可能に。 分散データへの一元的なアクセス ポイントを提供する仮想データ ウェアハウス。 多種多様なデータ・ソースに接続 し、事業部門で使いやすい形式に データを組み合わせて複数のユー ザーに配信。
  55. © 2022 CData Software Japan, LLC | www.cdata.com/jp 実はアツい仮想化:オープンソース SparkSQL

    Presto http://hive.apache.org/ https://spark.apache.org/ 構造化データを処理するための Spark モジュールであり、分散 SQL エンジンとして機能。 Hive Hadoopの上に構築されたデータ ウェアハウス 構築環境であり、 データの集約・問い合わせ・分析 を行う。 Hadoop、AWS S3、Alluxio、 MySQL、Cassandra、Kafka、 MongoDB、Teradataなどのさま ざまなデータソースをクエリでき る分散SQLクエリエンジン。 https://prestodb.io/
  56. © 2022 CData Software Japan, LLC | www.cdata.com/jp 今日のお話の内容 •

    API 連携のリアルタイム連携とバッチ連携 • リアルタイム連携とバッチ連携のメリット/デメリット • リアルタイム連携=データアクセス仮想化が必要 • データアクセス仮想化は今アツい! • データアクセスの仮想化の活用例-CData Connect Cloud
  57. © 2022 CData Software Japan, LLC | www.cdata.com/jp 各種API をクラウド上の仮想RDB

    エンドポイントに Enable real-time data integration with hundreds of applications, databases, and Web APIs SaaS 提供 ホスティング不要 CData Connect OData/SQLServer/MySQL
  58. © 2022 CData Software Japan, LLC | www.cdata.com/jp CData Connect

    によるクラウドSQL エンドポイント Give schema like RDB, enable standard SQL, give enterprise level security features • JSON/XMLなどのデータを テーブル構造にマッピング • 非構造化データからスキー マを自動検出 • 標準SQLでのデータアクセ スを可能に • フルCRUDを実現 • JOIN / フィルタリングや集 計関数にも対応 • MySQL、SQL Server wire protocol+OData • アプリ/ツールの対応インター フェースとして接続 • ファイアウォールやプロキシな どのネットワーク機能に標準 対応 • 各種認証・ログ管理等のエ ンタープライズレベルの要求 をすべて統一UIで提供 テーブル化 (スキーマ付与) 標準SQL クエリエンジン 統一インターフェース 認証 / 管理機能
  59. © 2022 CData Software Japan, LLC | www.cdata.com/jp 3ステップで接続設定 データソースを選択して、

    コネクション設定 データにアクセスするユーザーを設定し、トークンを発行 好みのクラウドツールからCData Connect 経由でSaaS にア クセス
  60. © 2022 CData Software Japan, LLC | www.cdata.com/jp まとめ •

    データ連携には、バッチ連携とリアルタイム連携があり、それぞれにメ リット・デメリットがある • データを操作するアプリケーションには外部連携機能が求められていて 「データアクセス仮想化」での実装が現実的 • データアクセス仮想化は、認証・データモデル・クエリを隠ぺいしてく れる
  61. © 2022 CData Software Japan, LLC | www.cdata.com/jp CData Software

    Japan では 業務拡大につき新しいメンバーを絶賛募集中! https://www.wantedly.com/companies/cdata2