大規模BIクラウドWebサービスの裏側
~ Waveの内部アーキテクチャとデザイン理念 ~
岡本 充洋
Senior Developer Evangelist, Salesforce.com
mokamoto@salesforce.com
Forward-Looking Statements
​Statement under the Private Securities Litigation Reform Act of 1995:
​This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or
if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the
forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any
projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies
or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology
developments and customer contracts or use of our services.
​The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for
our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of
growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed
and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand,
retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history
reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could
affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal yearand in our quarterly
report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC
Filings section of the Investor Information section of our Web site.
​Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may
not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently
available.Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
自己紹介
​岡本 充洋
​Salesforce.com
Senior Developer Evangelist
​2008年 に入社
§ Salesforceのテクノロジの啓蒙
§ 開発者からの声を R & D へのフィードバック
アジェンダ
Waveについて
Wave サーバ
​ ストラクチャ
​ データセット
​ クエリエンジン
Wave UI
​ 開発における理念
​ ノウハウ、プラクティス
Waveとは
​インタラクションに特化したビジュアリゼーションツール
5
テキストベース・テクノロジ
スキーマフリー のキーバリュー型ストア
転置インデックス及びデータの圧縮
SAQLクエリ⾔語
Wave UI
データを様々な⾓度から⾼速にクエリを実⾏
圧縮
転置インデックスKey/Value型
データマート
(⽬的、靴)(スポーツ、スキー)(⾊、⾚)….
(⽬的、⽔)(価格、3ドル)
Waveの構成要素 - ELT
​データセットのデザイン、作成
• Salesforceデータ
• CSVデータのアップロード
• データAPIによる外部連携
スケジュールによるデータ自動同期
• ワークフローの設定、管理
Waveの構成要素 - エキスプローラ
​アドホックなデータの分析
• Lens(クエリ + ビジュアリゼーション)
• Measure(指標)
• Dimension(カテゴリ)
• 絞り込み、グループ
• チャートの選択
Waveの構成要素 -ダッシュボード
​ダッシュボードビルダーで作成、共有
• 多様なWidgetサポート
​インタラクティブなダッシュボード
• Selector Widgetによる
クエリ、チャートの自動更新
Salesforce.comのサービス群とデータセンター
B2C
Marketing Automation
SMB
Service & Support
B2B
Marketing Automation
Development Platform
Stream ProcessSFA Service & Support
Customize Platform Analytics
Wave サービス (Super POD)
Queue(Redis) Workerサービス
Wave アーキテクチャ
Salesforce Core(POD)
Appサーバ
Force.com DB
(RDB)
Query
Queue
ELT
Worker
Query
Worker
クライアント
(Web)
• SPA
• HTML、JS、CSSを
初回にロード
• データ、クエリは
API経由
Data center
スケジューラ
CMS
FIieForce
(ファイルシステム)
Control
Library
リソース
マネージャ
ELT
Queue
Query ResultQuery ResultQuery Result
ELT
Worker
ELT
Worker
Query
Worker
Query
Worker
Wave サービス (Super POD)
Queue(Redis) Workerサービス
Wave アーキテクチャ
​データ・セット作成の場合
Salesforce Core(POD)
Appサーバ
Force.com DB
(RDB)
Query
Queue
クライアント
(Web)
• SPA
• HTML、JS、CSSを
初回にロード
• データ、クエリは
API経由
Data center
スケジューラ
CMS
FileForce
(ファイルシステム)
Control
Library
リソース
マネージャ
ELT
Queue
Query ResultQuery ResultQuery Result
ELT
Worker
Query
Worker
ELT
Worker
ELT
Worker
Query
Worker
Query
Worker
Wave サービス (Super POD)
Queue(Redis) Workerサービス
Wave アーキテクチャ
​Query実行の場合
Salesforce Core(POD)
Appサーバ
Force.com DB
(RDB)
Query
Queue
クライアント
(Web)
• SPA
• HTML、JS、CSSを
初回にロード
• データ、クエリは
API経由
Data center
スケジューラ
CMS
FileForce
(ファイルシステム)
Control
Library
リソース
マネージャ
ELT
Queue
Query ResultQuery ResultQuery Result
ELT
Worker
Query
Worker
ELT
Worker
ELT
Worker
Query
Worker
Query
Worker
Waveのデータセット
アドホックなデータ分析のために最適化されたファイルセット
​転置インデックス(Inverted Index)
​コンプレッションによりファイルサイズも最小限に
​スケーラブル
転置インデックス (Inverted Index)
​3つのドキュメント
​{0} – “Turtles love pizza”
​{1} – “I love my turtles”
​{2} – “My pizza is good”
テキスト ドキュメントID
“turtles” {0, 1}
“love” {0, 1}
“pizza” {0, 2}
“i” {1}
“my” {1, 2}
“is” {2}
“good” {2}
​検索キーワード: “my turtles”
“turtles” {0, 1}
“my” {1, 2})
INTERSECT({0, 1},{1,2}) = {1}
Row ID Carrier Origin Destination Miles Duration
1 AA SFO ORD 1200 4
2 AA SFO PHX 350 4
3 WN ORG SFO 1200 4
4 WN LAX ATL 1500 5
5 UA DFW SEA 1500 5
6 UA BOS LAX 1500 6
7 UA JFK SFO 1600 6
8 UA SFO ORD 1200 4
9 AA JFK ORD 1100 5
10 DL JFK ORD 1100 5
例 : 飛行機のフライトと飛行距離
Row ID Carrier Origin Destinat
ion
Miles Duration
1 AA SFO ORD 1200 4
2 AA SFO PHX 350 4
3 WN ORG SFO 1200 4
4 WN LAX ATL 1500 5
5 UA DFW SEA 1500 5
6 UA BOS LAX 1500 6
7 UA JFK SFO 1600 6
8 UA SFO ORD 1200 5
9 AA JFK ORD 1100 5
10 DL JFK ORD 1100 5
キー = 項目名 : 値
carrier:AA = {1, 2, 9}
dest:SFO = {3, 7}
データセットに転置インデックス作成
Key Value
Carrier:AA 1,2,9
Dest:ORD 1,8,9,10
Carrier:WN 3,4
Carrier:UA 5,6,7,8
Carrier:DL 10
Origin:SFO 1,2,8
etc.
データセットに転置インデックス作成
Row ID Carrier Origin Destinat
ion
Miles Duration
1 AA SFO ORD 1200 4
2 AA SFO PHX 350 4
3 WN ORG SFO 1200 4
4 WN LAX ATL 1500 5
5 UA DFW SEA 1500 5
6 UA BOS LAX 1500 6
7 UA JFK SFO 1600 6
8 UA SFO ORD 1200 5
9 AA JFK ORD 1100 5
10 DL JFK ORD 1100 5
Row ID Carrier Origin Destinat
ion
Miles Duration
1 AA SFO ORD 1200 4
2 AA SFO PHX 350 4
3 WN ORG SFO 1200 4
4 WN LAX ATL 1500 5
5 UA DFW SEA 1500 5
6 UA BOS LAX 1500 6
7 UA JFK SFO 1600 6
8 UA SFO ORD 1200 5
9 AA JFK ORD 1100 5
10 DL JFK ORD 1100 5
SELECT sum(Miles)
FROM Airline
WHERE ‘Origin’ = “SFO”
AND Destination’ = “ORD”
リレーショナル・データベースの場合
SFOからORDまでの全フライトのマイルの合計は?
Row ID Carrier Origin Destinat
ion
Miles Duration
1 AA SFO ORD 1200 4
2 AA SFO PHX 350 4
3 WN ORG SFO 1200 4
4 WN LAX ATL 1500 5
5 UA DFW SEA 1500 5
6 UA BOS LAX 1500 6
7 UA JFK SFO 1600 6
8 UA SFO ORD 1200 5
9 AA JFK ORD 1100 5
10 DL JFK ORD 1100 5
Key Value
Carrier:AA 1,2,9
Dest:ORD 1,8,9,10
Carrier:W
N
3,4
Carrier:UA 5,6,7,8
Carrier:DL 10
Origin:SFO 1,2,8
etc.
Miles
1200
350
1200
1500
1500
1500
1600
1200
1100
1100
転置インデックス + Measure
SFOからORDまでの全フライトのマイルの合計は?
Origin:SFO = {1,2,8}
Dest:ORD = {1,8,9,10}
SFOからORDまでの合計マイル数は?
{1,2,8} {1,8,9,10} = {1,8}
→ 2 フライト
Σ = 1200 + 1200 = 2400 マイル
Key Value
Carrier:AA 1,2,9
Dest:ORD 1,8,9,10
Carrier:W
N
3,4
Carrier:UA 5,6,7,8
Carrier:DL 10
Origin:SFO 1,2,8
etc.
Miles
1200
350
1200
1500
1500
1500
1600
1200
1100
1100
転置インデックス + Measure
SFOからORDまでの全フライトのマイルの合計は?
データセットの圧縮
row carrier origin dest dist
1 AA SFO DFW 1800
2 CO SFO LAX 600
3 AA SFO ORD 1500
4 CO SFO JFK 2000
5 AA SJC DFW 1600
6 CO SJC ORD 1400
7 AA SJC LAX 600
8 CO SJC ONT 600
9 AA LAX ORD 1000
9 – レコード数
carrier:AA {1, 3, 5, 7, 9}
carrier:CO {2, 4, 6, 8}
dest:DFW {1, 5}
dest:LAX {2, 7}
dest:ONT {8}
dest:ORT {3, 6, 9}
9 – レコード数
0 10 carrier:AA 5 9 4 1, 0, 4, 2
8 2 CO 4 8 3 0, 4, 2
0 8 dest:DFW 2 5 2 1, 4
5 3 LAX 2 7 2 2, 5
5 3 ONT 1 8 1 8
6 2 RD 3 9 3 0, 3, 3
Inverted Index 圧縮された Inverted Indexデータ
検索キーワード
Carrier == ‘AA’ && origin == ‘SFO’ && dest in [‘DFW’, ‘LAX’]
SAQL
​Waveのデータセットのデータにアクセスする時に使用
​Apache Pig Latinに影響されたクエリ言語
​すべてのレンズ、ダッシュボードがSAQL経由でデータ取得
SAQL 例
​q = load "Opportunity";
​q = filter q by 'Stage' != "Closed Won";
​q = group q by ('Stage', 'OpportunityOwner');
​q = foreach q generate 'Stage' as 'Stage', 'OpportunityOwner' as
'OpportunityOwner', sum('Amount') as 'sum_Amount', avg('Amount') as
'avg_Amount';
​q = order q by 'sum_Amount' DESC;
​q = limit q 2000;
クエリ・エンジン
SAQLパーサー
(Query Graph)
Optimizer
Query Executor
リソースマネジャー
データセット
(ローカルディスク)
クエリ・エンジン
クライアント
Salesforce Core
Appサーバ
データストア
Wave サービス
Queue
クエリエンジン
リソースマネージャ
Data center
データ分析において重要な要素
​データ分析において
​ビジュアリゼーションとインタラクションは
必要不可欠な要素
Ø 可視化の表現力と速度
Ø データの柔軟性
データ
分析
比較
絞込み
集計
並替え
ズーム
イン・
アウト
ハイラ
イト
ブック
マーキ
ング
Wave UIクライアント
Wave UIにおける重要な理念
モジュラーな
コードベース
再利用可能な
コンポーネント
プロダクト
アグノスティック
ビジュアリゼー
ションの最適化
Wave UIにおける重要な理念
モジュラーな
コードベース
再利用可能な
コンポーネント
プロダクト
アグノスティック
ビジュアリゼー
ションの最適化
再利用可能なコンポーネントを基礎にしたUI開発
​再利用可能なUIコンポーネントの設計・実装、それらコンポーネントを組み合わせてUIを開発
​再利用可能なUIコンポーネントとは
• UI Viewの一部を生成
• 例えば、ボタン、フォームフィールド、レイアウトコンポーネント、パネルビュー、モーダル…
• コンポーネントの動作、内部ステートをカプセル化
• 理想はステートレスなコンポーネント(つまり、コンポーネントは単にViewを生成する関数)
​Build UI with Reusable Components
React
​Wave ClientのUI View実装はReactを使用
​Reactとは?
FacebookからオープンソースされたハイパフォーマンスなWeb UIを作
成するためのJavascriptライブラリ
Reactを取り入れた理由
​ReactはUIコンポーエントを基礎にUI作成するためのライブラリ
​Reactの一方向データフローとWaveアーキテクチャの相性が良い
​Reactの仮想DOMによるレンダリングの高速化
アセットデータ
クエリ
ビジュアリゼーション
<Explorer>
<ControlBar>
<MeasureBar>
<GroupBar>
<Groups>
<Group>
…
<GroupAddButton>
<FilterBar>
<Filters>
<Filter>
…
<FilterAddButton>
<ActionsMenu>
<OptionsMenu>
…
エキスプローラのコンポーネントツリー
MeasureBar GroupBar ActionsMenuFilterBarControlBar
Data Event
再利用可能なコンポーネン
トを基礎に開発
Wave Analytics ダッシュボード Salesforce CRMダッシュボード
ダッシュボード グリッドレイアウト
GridLayoutコンポーネント、関連するUtilやサービスを
再利用可能に設計、実装
その結果、Salesforce CRMのダッシュボードにも再利用
Wave UIにおける重要な理念
モジュラーな
コードベース
再利用可能な
コンポーネント
プロダクト
アグノスティック
ビジュアリゼー
ションの最適化
Wave UI コードベース
​コードベースのモジュール化は必要不可欠
​クライアントアプリケーテョンの開発環境も飛躍的に向上
​Wave UIもそれら開発ツールを使用
Browserify Gulp
Backbone React
Wave Client コードベース
​Before
Wave
Client/Common
ETL Explorer Dashboard Éclair
Lightning Dashboard
Wave
Lightning Dashboard
Wave Client コードベース
​Now and Future
Wave Common
Wave
ETL Explorer Dashboard Éclair
Query
Builder
Lightning
Lightning Common
Dashboard Reports Home
App
Framewor
k
Finder
Analytics Common
Wave UIにおける重要な理念
モジュラーな
コードベース
再利用可能な
コンポーネント
プロダクト
アグノスティック
ビジュアリゼー
ションの最適化
プロダクトに依存しないデザイン
​取り組みの一つとして、データサービスオブジェクトのリファクタリング
​データサービスの主な役割
• 必要なデータセットメタデータのロード(API)
• クエリメタデータからSAQLクエリの生成
• SAQLクエリの実行
• クエリ実行後のリスナーへの通知
• クエリエラーの際のハンドリング
データサービス
データセットのロード
SAQLクエリ生成
クエリ実行
リスナーへの通知
データサービスオブジェクトのリファクタリング
​依存するサービスをデータオブジェクトから切り離す
​実行時に生成するDependencyを決定(ファクトリーメソッドなど)
​共通のインタフェースを定義
• 実行時に供給するクラスはインタフェースを実装
データサービス
データセットのロード
SAQLクエリ生成
クエリ実行
リスナーへの通知
ファクトリ・メソッド
SAQLBuilder
SOQLBuilder
他のクエリ言語(SQL)
API エンドポイント
を実行時に決定
Wave UIにおける重要な理念
モジュラーな
コードベース
再利用可能な
コンポーネント
プロダクト
アグノスティック
ビジュアリゼー
ションの最適化
Wave Lightning Wave Mobile
ÉclairNG
​Javascriptベースのチャートライブラリ
​プロダクト、プラットフォームに依存しない
​Wave, Lightning Reporting & Dashboard, Wave Mobileで使用
ÉclairNG スタック
Chart Script
Javascriptによるチャートの定義(設定、インタラクションの定義)
Utils、プリパッケージチャート
Scene Graph API
(Layout Management, Scrolling, Tweening, Scaling..)
Renderer API (Common Interface)
Desktop (HTML5 Canvas) iOS (Open GL ES)
ビジュアリゼーションの流れ in Wave
アセットデータのロード(API)
ChartWidget 生成
Lens StateからSAQLクエリ生成
SAQLクエリ実行
CanvasController 生成
クエリ結果からViz Model生成
チャートの表示(Éclair)
Lens State
ChartWidget
Data Service
CanvasController
Viz Model
Éclair
WaveUI
Lens API Endpoint Query API Endpoint
インタラクション #1
ユーザアクション
(条件、グループ、指標、並び替えの追加、変更、削除)
イベントハンドラーがLens State変更
Lens StateからSAQLクエリ生成
SAQLクエリ実行
CanvasControllerへ通知
クエリ結果からViz Model生成
チャートの表示(Éclair)
​ユーザアクションによるクエリシェープの変更
Lens State
ChartWidget
Data Service
CanvasController
Viz Model
Éclair
WaveUI
Lens API Endpoint Query API Endpoint
インタラクション #2
ユーザアクション
(チャートの変更)
イベントハンドラーが 新しいCanvasController生成
クエリ結果からViz Model生成
(クエリ結果を再利用)
チャートの表示(Éclair)
​ユーザインタラクションによるチャートの変更
Lens State
ChartWidget
Data Service
CanvasController
Viz Model
Éclair
WaveUI
Lens API Endpoint Query API Endpoint
インタラクション #3
ユーザアクション
(前/次のステートへ、初期ビューへ戻る)
HistoryManagerからLens Stateを取得
Lens StateからSAQLクエリ生成(Dataサービス)
QueryCacheからクエリ結果を取得
CanvasControllerへ通知
クエリ結果からViz Model生成
チャートの表示(Éclair)
​ヒストリー・ナビゲーション
Lens State
ChartWidget
Data Service
CanvasController
Viz Model
Éclair
WaveUI
HistoryManager
QueryCache
(ブラウザメモリ)
まとめ
​Waveのアーキテクチャ
Ø 論理構成
Ø データセットの仕組み
Ø SAQL、クエリエンジン
​Wave UI
Ø モジューラなコードベース
Ø 再利用可能なコンポーネントをベースにしたUI開発とその利点
Ø 特定のプロダクトに特化しないデザイン
Ø ビジュアリゼーションとインタラクティブな機能の仕組み
モジュラーな
コードベース
再利用可能な
コンポーネント
プロダクト
アグノスティック
ビジュアリゼー
ションの最適化
thank y u

More Related Content

PDF
Lightning Developer Week Tokyo
PDF
コンポーネントを”つなぐ”時代へ Web&Mobileアプリ開発最新動向
PDF
Webエンジニアがラクして企業向けモバイルアプリを作る方法 ~Salesforce1モバイルコンテナを使った開発手法~
PDF
Dreamforce15 報告など
PDF
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
PDF
2021Apr tableau_crm説明資料
PDF
やれる Heroku - Java アプリケーション開発編
PDF
Salesforce1 PlatformアーキテクチャWebinar
Lightning Developer Week Tokyo
コンポーネントを”つなぐ”時代へ Web&Mobileアプリ開発最新動向
Webエンジニアがラクして企業向けモバイルアプリを作る方法 ~Salesforce1モバイルコンテナを使った開発手法~
Dreamforce15 報告など
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
2021Apr tableau_crm説明資料
やれる Heroku - Java アプリケーション開発編
Salesforce1 PlatformアーキテクチャWebinar

What's hot (20)

PDF
Node.js開発者のためのHeroku入門
PDF
Herokuで実践するCI, CD
PDF
Heroku でカンタンすぐに実現する CI/CD
PDF
Python開発者のためのHeroku入門
PDF
App Cloud モバイルアプリ開発戦略
PDF
プロフェッショナルのための 実践 Heroku 入門
PDF
Heroku seminar winter19
PDF
はじめようLightningコンポーネント
PDF
Salesforce 開発入門
PDF
超初心者向けForce.com入門
PDF
Ruby開発者のためのHeroku入門
PDF
Salesforce.comの情報セキュリティについて
PDF
Connected Products
PDF
Salesforce Platform Mobile Serviceを使ったアプリ開発
PDF
Force.comとモバイルでイベント管理実例
PDF
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
PDF
PHP開発者のためのHeroku入門
PPTX
初めてのWave Analyticsデータセット作成
PDF
Lightning Experience 時代のプロセス開発
PDF
Visualforceを使ってみよう
Node.js開発者のためのHeroku入門
Herokuで実践するCI, CD
Heroku でカンタンすぐに実現する CI/CD
Python開発者のためのHeroku入門
App Cloud モバイルアプリ開発戦略
プロフェッショナルのための 実践 Heroku 入門
Heroku seminar winter19
はじめようLightningコンポーネント
Salesforce 開発入門
超初心者向けForce.com入門
Ruby開発者のためのHeroku入門
Salesforce.comの情報セキュリティについて
Connected Products
Salesforce Platform Mobile Serviceを使ったアプリ開発
Force.comとモバイルでイベント管理実例
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
PHP開発者のためのHeroku入門
初めてのWave Analyticsデータセット作成
Lightning Experience 時代のプロセス開発
Visualforceを使ってみよう
Ad

Viewers also liked (16)

PDF
Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumi
PPTX
#DataVizInSixWeeks, Week 2 - Viz Types
PDF
How to develop a huge Single Page Application
PDF
ngTeratail
PDF
情報共有から始めるチーム開発とキャリア戦略
PPTX
デブサミ2016 | 日本発IoTプラットフォームビジネスへの挑戦 SORACOM 立ち上げ格闘記
PDF
はじめてのAngular2
PDF
Java script.trend(spec)
PDF
現場から変えた“サービスの作り方” -何を作るのかではなくなぜ作るのか- #devsumi
PDF
マイクロサービス時代の動画配信基Ruby×go=∞
PDF
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
PPTX
エンタープライズ企業におけるAWS正式採用への挑戦〜レガシーを微笑みにかえて〜
PDF
MySQL Fabricでぼっこぼこにされたはなし
PPTX
エンジニアコミュニティで組織は動き出す
PPTX
HTTPとサーバ技術の最新動向
PDF
雑なMySQLパフォーマンスチューニング
Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumi
#DataVizInSixWeeks, Week 2 - Viz Types
How to develop a huge Single Page Application
ngTeratail
情報共有から始めるチーム開発とキャリア戦略
デブサミ2016 | 日本発IoTプラットフォームビジネスへの挑戦 SORACOM 立ち上げ格闘記
はじめてのAngular2
Java script.trend(spec)
現場から変えた“サービスの作り方” -何を作るのかではなくなぜ作るのか- #devsumi
マイクロサービス時代の動画配信基Ruby×go=∞
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
エンタープライズ企業におけるAWS正式採用への挑戦〜レガシーを微笑みにかえて〜
MySQL Fabricでぼっこぼこにされたはなし
エンジニアコミュニティで組織は動き出す
HTTPとサーバ技術の最新動向
雑なMySQLパフォーマンスチューニング
Ad

Similar to 大規模BIクラウドWebサービスの裏側 (20)

PDF
初めてのWave Analyticsダッシュボード開発
PPT
Apexコアデベロッパーセミナー070726 配布用
PDF
Spring16 リリース開発者向け新機能Webセミナー
PPTX
[旧版]OCI Data Catalog Overview 2020年3月版
PDF
ERPのデータをフロントシステムでどう活かすか
PDF
Einstein analyticsdashboardwebinar
PPT
AppExchangeパートナー&デベロッパー第2部:20070523版
PDF
Converting big data into big value
PDF
食わず嫌いの為のSalesforce1 Platform入門
PPTX
[旧版]OCI Data Integration Overview 2020年6月版
PDF
Spring '15 開発者向け新機能Webinar
PDF
[Oracle Innovation Summit Tokyo 2018] 水環境の持続を支えるクラウド型ICTプラットフォーム「Water Busine...
PPTX
[旧版]OCI Data Integration Overview 2020年7月版
PPTX
[旧版]OCI Data Catalog Overview 2021年2月版
PDF
Summer '16 開発者向け新機能 Webセミナー
PDF
Summer '12のワイルドな新機能+
PDF
Developers Summit 2018: ストリームとバッチを融合したBigData Analytics ~事例とデモから見えてくる、これからのデー...
PDF
セールスフォース・ドットコム Identity & Security
PPTX
【2017年5月時点】セルフサービスBIからエンタープライズまで展開できるOracle Business Analytics クラウドプラットフォームのご紹介
PPTX
[旧版]OCI Data Integration Overview 2021年2月版
初めてのWave Analyticsダッシュボード開発
Apexコアデベロッパーセミナー070726 配布用
Spring16 リリース開発者向け新機能Webセミナー
[旧版]OCI Data Catalog Overview 2020年3月版
ERPのデータをフロントシステムでどう活かすか
Einstein analyticsdashboardwebinar
AppExchangeパートナー&デベロッパー第2部:20070523版
Converting big data into big value
食わず嫌いの為のSalesforce1 Platform入門
[旧版]OCI Data Integration Overview 2020年6月版
Spring '15 開発者向け新機能Webinar
[Oracle Innovation Summit Tokyo 2018] 水環境の持続を支えるクラウド型ICTプラットフォーム「Water Busine...
[旧版]OCI Data Integration Overview 2020年7月版
[旧版]OCI Data Catalog Overview 2021年2月版
Summer '16 開発者向け新機能 Webセミナー
Summer '12のワイルドな新機能+
Developers Summit 2018: ストリームとバッチを融合したBigData Analytics ~事例とデモから見えてくる、これからのデー...
セールスフォース・ドットコム Identity & Security
【2017年5月時点】セルフサービスBIからエンタープライズまで展開できるOracle Business Analytics クラウドプラットフォームのご紹介
[旧版]OCI Data Integration Overview 2021年2月版

More from Mitch Okamoto (20)

PDF
RPAとiPaaSとAPIMの違いとMuleSoftのアプローチ
PDF
MuleSoftマイクロサービスとデプロイメントパターン
PDF
Heroku meetu18 kafka
PDF
世界的クラウド企業がコミュニティを育てるために考えていること
PDF
Summer17新機能 Einstein周り
PDF
Heroku Meetup #17 Herokuの細かすぎて伝わらない最新情報
PDF
Heroku CIを触ってみる
PDF
再考PaaS 〜 Heroku最新情報で考える、2017年のPaaS選択基準 〜
PDF
Heroku Javaで12-Factor App
PDF
Wave : Analytics Cloudとは
PDF
[Heroku meetup LT] Salesforce1 Developers Community MAXの紹介
PDF
Enterpriseでもモバイル開発
PDF
Salesforce Platformとモバイル活用
PDF
夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場
PDF
Herokuの多言語対応とPlay!
PDF
Heroku-ja Meetup #1 - Salesforce.com
PDF
[2011-17-C-4] Heroku & database.com
PPTX
18-B-2 Why don't you start business with cloud?
PPT
Platform by Salesforce.com and their development process
PDF
Developer Summit 2009 Your Success. Our Cloud.
RPAとiPaaSとAPIMの違いとMuleSoftのアプローチ
MuleSoftマイクロサービスとデプロイメントパターン
Heroku meetu18 kafka
世界的クラウド企業がコミュニティを育てるために考えていること
Summer17新機能 Einstein周り
Heroku Meetup #17 Herokuの細かすぎて伝わらない最新情報
Heroku CIを触ってみる
再考PaaS 〜 Heroku最新情報で考える、2017年のPaaS選択基準 〜
Heroku Javaで12-Factor App
Wave : Analytics Cloudとは
[Heroku meetup LT] Salesforce1 Developers Community MAXの紹介
Enterpriseでもモバイル開発
Salesforce Platformとモバイル活用
夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場
Herokuの多言語対応とPlay!
Heroku-ja Meetup #1 - Salesforce.com
[2011-17-C-4] Heroku & database.com
18-B-2 Why don't you start business with cloud?
Platform by Salesforce.com and their development process
Developer Summit 2009 Your Success. Our Cloud.

大規模BIクラウドWebサービスの裏側