jjug CCC 2022 の発表内容です。 増え続けるSaaS のAPI に接続するために、「データアクセス仮想化」が熱い! そもそものデータ連携のリアルタイム連携とバッチ連携を紐解きながら、データアクセスの仮想化について考えていきます。
クラウド時代のデータアクセス仮想化のススメ~リアルタイムデータ連携を紐解きつつ~2022/11/27 JJUG CCC FallCData Software Japan 疋田圭介
View Slide
© 2022 CData Software Japan, LLC | www.cdata.com/jpAbout SpeakerCData Software Japan session speaker疋田 圭介•CData Software Japan 合同会社 代表社員 職務執行者経歴•業務データ活用一筋15年+•管理会計、ビジネスプラン、予実管理•CData Software の日本オペレーションの立ち上げから•金融機関10年(内、インドネシア5年)•→ソフトウェアコンポーネント10年@hornets79@keisuke.hikita.5https://qiita.com/jonathanh
© 2022 CData Software Japan, LLC | www.cdata.com/jpJDBC、ODBC Driver をたくさん作っている会社Drivers for NoSQL, Big Data, & SaaS ConnectivityCRMおよびマーケティング自動化会計システムコラボレーションおよびERPオンプレミスおよびクラウドDBドキュメントおよびファイル形式ソーシャルネットワーキングネットワーキングおよび認証電子商取引その他
© 2022 CData Software Japan, LLC | www.cdata.com/jp「データ連携」って、フワッとしてますよね•Interface = 接続する部分・使用、連携•Connect = 接続すること、連携•Access = アクセス、接続すること、連携•Integration = 統合すること、連携•Sync = 同期すること、連携•Pipeline = 接続してデータを移動させること、連携•File Upload/Download = ファイル連携•File Transfer = ファイル連携•ETL = データ連携•EAI = アプリケーション間連携だいたい、システム以外のシーンでも「連携しといて」は、フワッとしてますね。。。←API ができることはこれだけ
© 2022 CData Software Japan, LLC | www.cdata.com/jpそんなデータ連携についての今日の話は「リアルタイム連携」からの「データアクセス仮想化」リアルタイム連携• アプリから直接• 仮想化バッチ連携• データを保存して加工• ETL 的
© 2022 CData Software Japan, LLC | www.cdata.com/jp複数データソースへのリアルタイム連携には「データアクセス仮想化」を!ユーザー・ツールが利用している"言語"を即座に翻訳してくれるインターフェースSELECT * FROMTweetsHTTPGET /tweetJSON{“Text”:”Hello”}Dataset| Text || Hello |
© 2022 CData Software Japan, LLC | www.cdata.com/jp今日のお話の内容• API 連携のリアルタイム連携とバッチ連携• リアルタイム連携とバッチ連携のメリット/デメリット• リアルタイム連携=データアクセス仮想化が必要• データアクセス仮想化は今アツい!• データアクセスの仮想化の活用例-CData Connect Cloud
© 2022 CData Software Japan, LLC | www.cdata.com/jpBI ツールからTwitter のデータを使う場合にどうしますか?
© 2022 CData Software Japan, LLC | www.cdata.com/jpバッチ連携:ETL でデータを保存して、BI からアクセス• データは一旦、DB・ストレージに保存される• Python 回してS3、やCSV おとしました、も含まれる• 定期実行ETL/ELTDB
© 2022 CData Software Japan, LLC | www.cdata.com/jpこれもバッチ連携:プログラムでAPI を呼び出してCSV を吐き出すもちろん手動でのCSV ダウンロード&保存もバッチ連携
© 2022 CData Software Japan, LLC | www.cdata.com/jpリアルタイム連携:直接ツールから直接データソースを呼び出す• 直接ツールからデータソースを呼び出す• リアルタイム、ダイレクト、Live 接続とも• ツール側にコネクタがあるとできる(実際はTwitter ネイティブコネクタないが)
© 2022 CData Software Japan, LLC | www.cdata.com/jpこれもリアルタイム連携:間にJDBC DriverJDBCDriver• JDBC Driver、ODBC Driver、ADO.NET Provider などのドライバー• クエリの起点はBI ツール側• データは間に保存されない
© 2022 CData Software Japan, LLC | www.cdata.com/jpこれもリアルタイム連携:Prep 系のツールを使うODBCDriver• データのスキーマ操作はするが、データ自体を保存しなければリアルタイムPreparationTool
© 2022 CData Software Japan, LLC | www.cdata.com/jpこれもリアルタイム連携:間にSQL Server のリンクサーバーODBCDriverSQL ServerLinked Server• クエリの起点はBI ツール側• データは間に保存されない• 間でプロトコル変わっているけど、データは直通TDS(SQL Server)
© 2022 CData Software Japan, LLC | www.cdata.com/jpこれもリアルタイム型:データアクセス仮想化サービスCDataConnectTDS(SQL Server)• クエリの起点はBI ツール側• データは間に保存されない• 間でプロトコル変わっているけど、データは直通
© 2022 CData Software Japan, LLC | www.cdata.com/jpみなさん、どっちのイメージでしたか?• バッチ連携の方をイメージする人の方が多そう• でも多くのツールでは多様なSaaS / DB を直接リアルタイムでクエリする機能を強化している• ユーザーも自然にリアルタイム型で連携してデータを使っている
© 2022 CData Software Japan, LLC | www.cdata.com/jpたとえば:Power BI の接続先
© 2022 CData Software Japan, LLC | www.cdata.com/jpたとえば:Tableau の接続先
© 2022 CData Software Japan, LLC | www.cdata.com/jpリアルタイム連携ツールからのデータの呼び出しデータの動きとプロセスが逆バッチ連携ETL ツールのイメージが強いとわかりやすいデータが順番に動くメリット・デメリット:一般的なわかりやすさ
© 2022 CData Software Japan, LLC | www.cdata.com/jpETL/ELTJDBC Driverメリット・デメリット:一般的なわかりやすさバッチ連携リアルタイム型①呼び出す②加工する③DB にロード④保管 ⑤クエリ①クエリ②パース
© 2022 CData Software Japan, LLC | www.cdata.com/jpメリット・デメリット:リアルタイム性リアルタイム連携データ取得時(リフレッシュ時)にリアルタイムデータを取得可能バッチ連携バッチで時間差ありツール側からデータのリフレッシュができない(間隔は短くできるが)
© 2022 CData Software Japan, LLC | www.cdata.com/jpETL/ELTJDBC Driverバッチ連携リアルタイム連携BI から更新(リフレッシュ)可能BI から更新(リフレッシュ)不可リフレッシュはETLで実行メリット・デメリット:リアルタイム性
© 2022 CData Software Japan, LLC | www.cdata.com/jpメリット・デメリット:ホスティング、インフラリアルタイム連携間にデータを保管せずDB やストレージが不要バッチ連携間にストレージやDBホスティングやサービス利用が必要
© 2022 CData Software Japan, LLC | www.cdata.com/jpETL/ELTJDBC Driverバッチ連携リアルタイム連携サーバー or サービスが必要間になにもインフラがない(リンクサーバーではインフラ必要)メリット・デメリット:ホスティング、インフラ
© 2022 CData Software Japan, LLC | www.cdata.com/jpメリット・デメリット:容量の大きいデータ(API 制限)リアルタイム連携基本向いてない全件取得がベース(ダイレクトクエリが使えれば回避も)バッチ連携差分でのデータ取得が可能であり、大容量データでも扱い可
© 2022 CData Software Japan, LLC | www.cdata.com/jpETL/ELTJDBC Driverバッチ連携全件取得全件リフレッシュ(ツラい)差分で保存できる(クエリ減らせる)超大容量だとダイレクトクエリ(サーバー側フィルタリング)もよいメリット・デメリット:容量の大きいデータ(API 制限)リアルタイム連携
© 2022 CData Software Japan, LLC | www.cdata.com/jpメリット・デメリット:データ加工や複数データソース統合リアルタイム連携複雑なデータ加工には不向き統合などもあまり向いていないバッチ連携データを保存後に別プロセスで加工することが容易。マスター統合、データの統合、ビュー作成
© 2022 CData Software Japan, LLC | www.cdata.com/jpETL/ELTバッチ連携複雑な加工苦手統合もマスター次第加工・統合得意 加工・統合得意メリット・デメリット:データ加工や複数データソース統合リアルタイム連携
© 2022 CData Software Japan, LLC | www.cdata.com/jpメリット・デメリット:パフォーマンスリアルタイム連携原則遅いAPI コールバッチ連携DWH のパフォーマンスやロケーションにもよるが原則早い
© 2022 CData Software Japan, LLC | www.cdata.com/jpETL/ELTバッチ連携リアルタイム型レイテンシあり基本早いDB-BI 間だけの問題インターネット経由メリット・デメリット:パフォーマンス
© 2022 CData Software Japan, LLC | www.cdata.com/jpメリット・デメリット:実装の難易度リアルタイム連携コネクタがある:簡単コネクタ開発から:大変バッチ連携DWH を管理する手間しっかり作れる
© 2022 CData Software Japan, LLC | www.cdata.com/jpメリット・デメリット:管理面・セキュリティリアルタイム連携個々のユーザーによる野良データセットサービスの利用権限をそのまま適用可能バッチ連携全社共有のデータセット利用権限はDWH で再設定必要
© 2022 CData Software Japan, LLC | www.cdata.com/jpETL/ELTバッチ連携管理しやすい全社利用データセット権限を透過可能データセットは野良化メリット・デメリット:管理面・セキュリティリアルタイム連携
© 2022 CData Software Japan, LLC | www.cdata.com/jpエンドユーザーであれば、向き不向きで選んでOK• 単一のSaaS で、データが千件程度→リアルタイム連携でOK• MA やCRM の数十~数百万件のデータ→バッチ連携一択• 複数のSaaS でデータマート(ビュー)を作って分析→バッチ連携一択• 探索的に自分の手元でいろんなデータを見たい→リアルタイムでOK• AppSheet などのノーコードアプリツールから→リアルタイム向き
© 2022 CData Software Japan, LLC | www.cdata.com/jpノーコードとかツールベンダーならリアルタイム連携=仮想化はやるべき• 内臓コネクタによるリアルタイム連携機能(中で仮想化)がどんどん主流になってきている• BI ツールであれば、ユーザーに外部ETL での連携をゆだねることもOK だが、やっぱり導入の足かせにはなる• iPaaS、クラウドRPA、ノーコード/ローコードアプリ開発ツール
© 2022 CData Software Japan, LLC | www.cdata.com/jp今日のお話の内容• API 連携のリアルタイム連携とバッチ連携• リアルタイム連携とバッチ連携のメリット/デメリット• リアルタイム連携=データアクセス仮想化が必要な理由• データアクセス仮想化は今アツい!• データアクセスの仮想化の活用例-CData Connect Cloud
© 2022 CData Software Japan, LLC | www.cdata.com/jpデータアクセスの仮想化とは?ユーザー・ツールが利用している"言語"を即座に翻訳してくれるインターフェースSELECT * FROMTweetsHTTPGET /tweetJSON{“Text”:”Hello”}Dataset| Text || Hello |
データアクセス仮想化は今なぜ必要?
© 2022 CData Software Japan, LLC | www.cdata.com/jp仮想化しないで複数のコネクタ実装をするとたぶん死ぬ• 連携が必要なSaaS・クラウドサービスが多すぎる• API とかREST と言われても実装のバリエーションが多い• なにもしないと壊れる
© 2022 CData Software Japan, LLC | www.cdata.com/jp企業データの種類が多様化し、サイロ化Specialized & Emerging TechSmartsheet, Reckon, ExactOnline, MailChimpRelational / RDBMSMySQL, SQL, PostgreSQLUniversal SaaS & Cloud StorageSalesforce, SAP, Dynamics, BigQuery, MongoDBVertical Apps & ServicesMarketo, Eloqua, Splunk, ServiceNow, HubSpot
© 2022 CData Software Japan, LLC | www.cdata.com/jp企業で使うSaaS の数は急増# of SaaS Apps used in Corporate is increasing
© 2022 CData Software Japan, LLC | www.cdata.com/jpTrend: 企業で使うSaaS の数は急増# of SaaS Apps used in Corporate is increasing• 1企業で使うSaaS 種類の平均が110種類• アメリカのトレンドに日本も追従し、現在は1社10種類程度のSaaS 利用でも、数年後に数十種類になるのではないかhttps://stateofsaasops.bettercloud.com/
© 2022 CData Software Japan, LLC | www.cdata.com/jp仮想化しないで複数のコネクタ実装をすると死ぬ• 連携が必要なSaaS・クラウドサービスが多すぎる• API とかREST と言われても実装のバリエーションが多い• なにもしないと壊れる
© 2022 CData Software Japan, LLC | www.cdata.com/jpインターフェースそれぞれの特性を考慮しなければいけないProtocols Data ModelMetadata Authentication CapabilitiesSOAPRESTODataStaticDynamicsHybridRelationalNoSQLRaw StoresBasicAPI TokenOAuthFilterAggregationsJoins
© 2022 CData Software Japan, LLC | www.cdata.com/jp例えば「Salesforce」の「REST API」実体はSOQLというSalesforce内部での独自規格のSQLを発行するAPI
© 2022 CData Software Japan, LLC | www.cdata.com/jp
© 2022 CData Software Japan, LLC | www.cdata.com/jpSalesforce の API Version は「53」
© 2022 CData Software Japan, LLC | www.cdata.com/jpAmazon Marketplace API アップデートでAPI仕様が大幅変更・古いAPI終了告知が半年前*
© 2022 CData Software Japan, LLC | www.cdata.com/jp軽減税率対応が全EC、CRM で発生注文データや商品マスタなどほとんどのAPIリソースの項目が追加・更新
© 2022 CData Software Japan, LLC | www.cdata.com/jp仮想化しないで複数のコネクタ実装をすると死ぬ• API 連携の実装および維持はかなり複雑&ハード• 共通化して、コンポーネント化しないと苦しい• いわゆるコネクタSDK を公開している例も多い• 内部でもSDK を標準化(=仮想化レイヤー)として持っている• おなじみのJDBC は、皆さんが一番知っている仮想化
© 2021 CData Software Japan, LLC | www.cdata.com/jp1. About CData Softwareデータアクセス仮想化は何をしているの?
© 2022 CData Software Japan, LLC | www.cdata.com/jpデータアクセス仮想化は何をしているの?プロトコルの擬態内部プロセスの隠蔽
© 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
© 2022 CData Software Japan, LLC | www.cdata.com/jp内部プロセスの隠蔽インターフェース側の仕様と帳尻を合わせるためのネイティブAPI側とのやり取りを行う・プロトコル側のレスポンスのパース・ネイティブAPI側へのリクエストの組み立て・API処理のハンドリング(時にはジョブの実行状態チェック等も)・レスポンス処理のパース・プロトコル側への返却値としての組み立て(ただし製品による。ビッグデータ処理系等)
© 2022 CData Software Japan, LLC | www.cdata.com/jpもう少し噛み砕いて言えばネイティブなAPIに直接アクセスするのではなく異なる共通のプロトコル・仕様のレイヤーを通じてそれらのAPIにアクセスする技術
© 2022 CData Software Japan, LLC | www.cdata.com/jp実はアツい仮想化:クラウドベンダー系(Microsoft)PolyBase Azure Synapse Link forAzure Cosmos DBDynamics 365Virtual Entitieshttps://docs.microsoft.com/ja-jp/sql/relational-databases/polybase/polybase-guidehttps://docs.microsoft.com/ja-jp/azure/cosmos-db/synapse-linkhttps://docs.microsoft.com/en-us/powerapps/developer/data-platform/virtual-entities/get-started-ve外部データ ソースからデータを読み取る Transact-SQL クエリを SQL Server インスタンスで処理。Azure Cosmos DB のオペレーショナル データに対してリアルタイムに近い分析をAzureSynapseからL実行可能。外部システムに存在するデータをDynamics 365 内のエンティティとしてシームレスに表すことで、データの重複なしに、外部システムに存在するデータの統合。
© 2022 CData Software Japan, LLC | www.cdata.com/jp実はアツい仮想化:クラウドベンダー系(AWS・GCP)Babelfish forAurora PostgreSQLGoogle BigQuery OmniAmazon Athenahttps://aws.amazon.com/jp/rds/aurora/babelfish/ https://aws.amazon.com/jp/athena/https://cloud.google.com/blog/products/data-analytics/introducing-bigquery-omniAurora PostgreSQLにSQLServer互換レイヤを実装。インタラクティブなクエリサービスで、Amazon S3 内のデータを標準 SQL を使用して簡単に分析「BigQueryエンジン」を、AWSやAzure上で動かし、複数のクラウドにあるデータを分析可能に。
© 2022 CData Software Japan, LLC | www.cdata.com/jp実はアツい仮想化:独立ベンダー系CData Connect DenodoTIBCOData virtualizationhttps://www.cdata.com/jp/connect/ https://www.tibco.com/products/data-virtualization https://www.denodo.com/ja各種API をクラウド上の仮想RDB エンドポイントにし、TDS・MySQLプロトコルで接続を可能に。分散データへの一元的なアクセスポイントを提供する仮想データウェアハウス。多種多様なデータ・ソースに接続し、事業部門で使いやすい形式にデータを組み合わせて複数のユーザーに配信。
© 2022 CData Software Japan, LLC | www.cdata.com/jp実はアツい仮想化:オープンソースSparkSQL Prestohttp://hive.apache.org/https://spark.apache.org/構造化データを処理するためのSpark モジュールであり、分散SQL エンジンとして機能。HiveHadoopの上に構築されたデータウェアハウス 構築環境であり、データの集約・問い合わせ・分析を行う。Hadoop、AWS S3、Alluxio、MySQL、Cassandra、Kafka、MongoDB、Teradataなどのさまざまなデータソースをクエリできる分散SQLクエリエンジン。https://prestodb.io/
CData ConnectSQL as a Service - クラウド上の仮想SQL エンドポイントであらゆるSaaS データにアクセスCData ConnectOData/SQLServer/MySQL
© 2022 CData Software Japan, LLC | www.cdata.com/jp各種API をクラウド上の仮想RDB エンドポイントにEnable real-time data integration with hundreds of applications, databases, and Web APIsSaaS 提供ホスティング不要CData ConnectOData/SQLServer/MySQL
© 2022 CData Software Japan, LLC | www.cdata.com/jpCData Connect によるクラウドSQL エンドポイントGive schema like RDB, enable standard SQL, give enterprise level security features• JSON/XMLなどのデータをテーブル構造にマッピング• 非構造化データからスキーマを自動検出• 標準SQLでのデータアクセスを可能に• フルCRUDを実現• JOIN / フィルタリングや集計関数にも対応• MySQL、SQL Serverwire protocol+OData• アプリ/ツールの対応インターフェースとして接続• ファイアウォールやプロキシなどのネットワーク機能に標準対応• 各種認証・ログ管理等のエンタープライズレベルの要求をすべて統一UIで提供テーブル化(スキーマ付与)標準SQLクエリエンジン統一インターフェース認証 /管理機能
© 2022 CData Software Japan, LLC | www.cdata.com/jp3ステップで接続設定データソースを選択して、コネクション設定データにアクセスするユーザーを設定し、トークンを発行 好みのクラウドツールからCData Connect 経由でSaaS にアクセス
© 2022 CData Software Japan, LLC | www.cdata.com/jpまとめ• データ連携には、バッチ連携とリアルタイム連携があり、それぞれにメリット・デメリットがある• データを操作するアプリケーションには外部連携機能が求められていて「データアクセス仮想化」での実装が現実的• データアクセス仮想化は、認証・データモデル・クエリを隠ぺいしてくれる
© 2021 CData Software Japan, LLC | www.cdata.com/jp1. About CData Software最後に
© 2022 CData Software Japan, LLC | www.cdata.com/jpCData Software Japan では業務拡大につき新しいメンバーを絶賛募集中!https://www.wantedly.com/companies/cdata2