ETLの処理速度を上げる方法

これっち
これっち Contributor
編集済: 5月 2023 仲間に相談

例ですが入力データ約700万件、出力データ600万件という処理を行った場合、

処理時間が2時間~3時間弱掛かります。

 

処理を早くする方法はありますか?

ベストアンサー

  • 不明
    回答済み✓

    Redshiftのコネクタではなく、データフローのSQLで、MySQLを利用するか、Redshiftを利用するか、を選択できるようになります。

    サポートへRedshiftの有効化を依頼すれば、Redshiftが選択できるようになります。

答え

  • 投稿ありがとうございます。

     

    ETLのパフォーマンス・チューニングは、原因は個々のETLに依存するので、こうすれば早くなるという一般的な方法はありません。

    処理を分解するなどして、遅延ポイントの特定と、改善を行っていくしかないです。

     

    今後ETLのパフォーマンスが改善する可能性はありますが、現時点だと500万件を超えるようなデータフローの場合は、MySQLまたはRedshiftの方がパフォーマンスはよくなると思います。

  • 回答有難うございます。

     

    当初は大量データに関してSQLで対応していましたが、

    とても処理が遅かったのでDOMOの方に相談したところ、

    ETLの方が早いと聞きましたのでETLに寄せました。

     

    仕様が変わりましたのでしょうか?

  • 過去にETLとSQLで、パフォーマンスの状況が違った可能性はあります。

    現時点では、MySQLとETLのパフォーマンスは同程度ですが、チューニングの自由度を考えるとMySQLの方が便利です。

    大量データの場合は、Redshiftを有効化して頂いて利用頂くのが、現時点の最もよいパフォーマンスが期待できる利用方法になります。

  • 回答有難うございます。

     

    Redshiftを有効化して

    使用した事がないのですが、ヘルプでいう下記で合ってますか?

    https://knowledge-ja.domo.com/Connect/Connecting_to_Data_with_Connectors/Configuring_Each_Connector/Amazon_Redshift_Connector

  • DataFlow SQLの処理の流れですが、自分たちが使用している環境だと

    ①対象のDataSetをSQLが使用できるサーバーにコピー
    ②コピーされたサーバーでSQLを実行
    ③実行結果のDataSetを元のサーバーにコピーする

    と聞いております。
    なのでDataSetの容量が大きいとコピーだけに時間をとられ
    結果的には自サーバーで処理を行うETLの方が処理が速いと伺っております。
    この辺の流れが改善されたのでしょうか?

     

  • 不明
    回答済み✓

    Redshiftのコネクタではなく、データフローのSQLで、MySQLを利用するか、Redshiftを利用するか、を選択できるようになります。

    サポートへRedshiftの有効化を依頼すれば、Redshiftが選択できるようになります。

  • ETLについても、「①対象のDataSetをSQLが使用できるサーバーにコピー」と「③実行結果のDataSetを元のサーバーにコピーする」は、実行されます。

    なので、①と③に関して、ETLとSQLでの違いは、現状ありません。