Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
APIタイムアウトに負けないスクリプトをつくろう
Search
Ryosuke Ishii - DataPrade-
March 03, 2022
Technology
48
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
APIタイムアウトに負けないスクリプトをつくろう
2022/3/3 DMS Cube祭りの登壇資料
SalesforceとDataSpiderの連携で発生するタイムアウトをどう解決するか
Ryosuke Ishii - DataPrade-
March 03, 2022
More Decks by Ryosuke Ishii - DataPrade-
See All by Ryosuke Ishii - DataPrade-
町中華のオープンデータをつくる
ryosanbimania
0
32
データ分析基盤を支えるDataSpiderのノウハウを公開します〜お客様の笑顔のために〜
ryosanbimania
0
14
Other Decks in Technology
See All in Technology
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
200
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
200
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
740
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
170
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
280
会社説明資料
persolserverworks
0
9.8k
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
2
140
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
120
Getting Started with Google Antigravity
glaforge
0
320
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
1k
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
180
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
200
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
41k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
How to train your dragon (web standard)
notwaldorf
96
6.9k
For a Future-Friendly Web
brad_frost
184
10k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Building AI with AI
inesmontani
PRO
1
1.3k
Site-Speed That Sticks
csswizardry
13
1.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Transcript
APIタイムアウトに負けない スクリプトをつくろう 2022/3/3
本日おつたえしたいこと • DataSpiderなどのETL製品は「これ便利!!」という機能がたくさんある • 「あ、こうやって組めばいいのか!」という知っ得情報がたくさんある こんな情報をDMS Cubeの中で共有して、誰もが簡単に、たくさんのひらめきの中 でETLツールを扱えるようになってほしい。
自己紹介
適用ツールの実績 10種類 28案件 サポート業種 n 家具販売業 n オフィス家具販売業 n 海運事業
n 食品調味料製造業 n 輸入食品小売販売業 n 化粧品製造業 n アパレルメーカー n 自動車部品卸業 etc. 商談支援 要件定義 設 計 製 造 保 守 りょうさん セミナー 年代 企業 職種 2008-2016 ITベンダー システムエンジニア・セールスエンジニア 2017-2021 ITメーカー セールスエンジニア・カスタマーサクセス 2021- フリーランス BIエンジニア @ryosanbimania ETLツール BIツール
ETL と DWH と BI
ETL と DWH と BI 会計管理 生産管理 販売管理 ETLはシステム間でデータの抽出・変換・格納をすることがメインミッション HTML
RS EC WS HTML
ETL と DWH と BI 会計管理 生産管理 販売管理 それがDWH・BIの目線だとこうなる ETL
DWH BI
ETL と DWH と BI 本日はここのお話です
クラウド からデータを取得する
クラウド からデータを取得する API(Application Programming Interface)はクラウド系からのデータ取得の定番 会計管理 生産管理 販売管理 データベースからデータを抽出 APIでデータを抽出
参照:https://www.hulft.com/software/dataspidercloud/adapter
それぞれのユーザーがAPIで負荷をかけるとシステムが止まってしまうため、上限が 決まっていることが多い。 大量データの抽出は負荷がかかる クラウド からデータを取得する
つまりAPIからのデータ抽出をするとき、APIのエラーに気をつけねばならない ※ETLツールだからタイムアウトするという訳ではなく、プログラムを組んでも同じ現象は発生する クラウド からデータを取得する
Salesforce のデータを取得する
ミッションの整理 • Salesforceのデータを0:00から8:00までにデータベースに格納する • データ抽出対象のテーブル(オブジェクト)は14本 • データ取得の並列処理は行わない(負荷が上がりタイムアウト発生の要因になるため) Salesforce のデータを取得する
難しいところはここ • SalesforceのAPIタイムアウトは起こるとき起きない時が読めない • それでも朝8:00までにはすべての処理を終了させる必要がある →タイムアウトが発生することを認め、タイムアウトが起きる前提で処理を組む Salesforce のデータを取得する
解決策 • ジョブスクリプトを夜間の内に複数回実行する • タイムアウトでエラーになったジョブスクリプトのみ、再度処理を走らせる Salesforce のデータを取得する ◦ ◦ ◦
× ◦ ◦ ◦ × ◦ × ◦ ◦ × ◦ × ◦ × ◦ ◦ × ◦ 0:00 1:00 2:00 3:00
Salesforce のデータを取得する 解決策 ジョブスクリプトを夜間の内に複数回実行する タイムアウトでエラーになったジョブスクリプトのみ、再度処理を走らせる 1.親子関係のジョブスクリプトをつくる
Salesforce のデータを取得する 解決策 ジョブスクリプトを夜間の内に複数回実行する タイムアウトでエラーになったジョブスクリプトのみ、再度処理を走らせる 2.子のジョブスクリプトは実行ログをデータベースに格納する
Salesforce のデータを取得する 解決策 ジョブスクリプトを夜間の内に複数回実行する タイムアウトでエラーになったジョブスクリプトのみ、再度処理を走らせる 3.子のジョブスクリプトは処理の最初に[前回の処理は成功したか]を判定し、 処理が失敗していたら、データ取得処理を走らせる。
Salesforce のデータを取得する 解決策 ジョブスクリプトを夜間の内に複数回実行する タイムアウトでエラーになったジョブスクリプトのみ、再度処理を走らせる 4.夜間連携の処理結果をメールで通知する
まとめ • ジョブスクリプトを夜間の内に複数回実行する • タイムアウトでエラーになったジョブスクリプトのみ、再度処理を走らせる 1. 親子関係のジョブスクリプトをつくる 2. 子のジョブスクリプトは実行ログをデータベースに格納する 3.
子のジョブスクリプトは処理の最初に[前回の処理は成功したか]を判定し、 処理が失敗していたら、データ取得処理を走らせる。 4. 夜間連携の処理結果をメールで通知する Salesforce のデータを取得する さらに詳細を知りたい場合はこちらを参照 https://zenn.dev/ryosanbimania/articles/168701311ec72d
どれくらい安定しているのか確認してみる • Salesforceの使用頻度の低い曜日はタイムアウトになりにくい • オブジェクトにかかる負荷が大きいものはタイムアウトになりやすい • 月や季節とタイムアウト数に依存関係はない ログデータをDBにためると新たな気付きが得られる
Appendix
一番飯店 データ分析基盤構築 計画 幼馴染が三代目を務める町中華の支援 ホームページ制作 PV数の可視化 期間限定メニューの選定 チラシ化・広告 4ヶ国語翻訳版 新メニュー表作成
メディア対応 ワカコ酒 Season5 町中華で飲ろうぜ ヒルナンデス! 嵐にしやがれ モヤさま シューイチ アド街 町中華で飲ろうぜ news every. じゅん散歩 ぴあ 週刊現代 etc.
一番飯店 データ分析基盤構築 計画 詳細はこちらをチェック:https://data-parade.com/ichibanhanten
oViceにようこそ 詳細はこちらをチェック:https://data-parade.com/oVice 本日の交流会でも使用されるビジネスメタ バース[oVice]について、様々な情報発信をし ております。
FIN