MySQL Connectorでデータ量が多い場合に分割して取込している方いますか?
MySQL Connectorでデータ量(件数や1レコードあたりのサイズ)が多い場合に分割等何か工夫して取込している方いますでしょうか?どの様に行っているか参考にさせていただきたいです。
現在
select * from table_name where 条件;
という形でデータを取り込んでいるのですが、対象件数が数百万件あります。
ある時急に取込が10数分だったものが数時間レベルで遅くなり確認したところ
1撃で取れる件数(データ量)が多すぎてDB側がボトルネックになってしまっていました。
1撃で取れる件数を少なくすると解決できたため
select * from table_name where 条件 and 分割条件; -> dataset01
select * from table_name where 条件 and 分割条件; -> dataset02
・・・
select * from table_name where 条件 and 分割条件; -> dataset10
の様な形でconnectorの設定を沢山用意しスケジュール設定で同時刻に並行で走らせ
その後dataflow-ETLで結合(追加)で全件保持しているdatasetを作って解決させました。
ただ
・このやり方より良いものはあるか
・スケジュール変える時に全datasetの設定変更するの大変
・複数のdatasetがインプットのdataflowは実行のトリガーが設定しづらい(全てのdatasetをトリガーにすると実行中だったり何度も走ってしまうので全てのdatasetの取込が終わっただろうという時間にダミーのdatasetの更新をトリガーとしてdataflowをキックしています)
ということもあり、
もし、皆様の中で自分と同じような状況で「こういう方法でやっている」(早くて簡単)というものがあれば参考にしたいと思い質問させていただきました。
Comments
-
UNION ALLのような処理をするのであれば、
Blendで、DataFusionのタイプを「行を追加」でやる方が、
設定も簡単かつ実行のトリガーも気にしないで済みますし、更新時間も一瞬です。
あと気になったのですが、
where 条件の部分は、Indexを貼っているカラムを利用されていますか?
0
Categories
- All Categories
- 2K Product Ideas
- 2K Ideas Exchange
- 1.6K Connect
- 1.3K Connectors
- 311 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 3.8K Transform
- 655 Datasets
- 114 SQL DataFlows
- 2.2K Magic ETL
- 811 Beast Mode
- 3.3K Visualize
- 2.5K Charting
- 80 App Studio
- 45 Variables
- 771 Automate
- 190 Apps
- 481 APIs & Domo Developer
- 77 Workflows
- 23 Code Engine
- 36 AI and Machine Learning
- 19 AI Chat
- AI Playground
- AI Projects and Models
- 17 Jupyter Workspaces
- 409 Distribute
- 120 Domo Everywhere
- 279 Scheduled Reports
- 10 Software Integrations
- 142 Manage
- 138 Governance & Security
- 8 Domo Community Gallery
- 48 Product Releases
- 12 Domo University
- 5.4K Community Forums
- 41 Getting Started
- 31 Community Member Introductions
- 114 Community Announcements
- 4.8K Archive