Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Appflow で Salesforce to Snowflake へのデータローディング(EL)をやってみた / appflow-salesforce-snowflake-dataloading

Miyamotok
September 22, 2022

Amazon Appflow で Salesforce to Snowflake へのデータローディング(EL)をやってみた / appflow-salesforce-snowflake-dataloading

2022/9/22 JAWS-UG TOHOKU

Miyamotok

September 22, 2022
Tweet

More Decks by Miyamotok

Other Decks in Technology

Transcript

  1. Amazon Appflow で
    Salesforce to Snowflake へのデータ
    ローディング(EL)をやってみた
    JAWS-UG TOHOKU - 東北で働くエンジニアでAWSを語る会 #jawsugtohoku
    2022/09/22
    CData Software Japan
    宮本

    View Slide

  2. Amazon Appflow で
    Salesforce to Snowflake へのデータ
    ローディング(EL)をやってみた
    が出来なかった話💦
    JAWS-UG TOHOKU - 東北で働くエンジニアでAWSを語る会 #jawsugtohoku
    2022/09/22
    CData Software Japan
    宮本

    View Slide

  3. 先にお伝えします
    Salesforce の取引先情報をAppflowの簡単な設定でSnowflake にデータローディングするはずが、
    Appflow側の設定か何かで出来ませんでした
    m(__)m

    View Slide

  4. 自己紹介
    宮本 航太(@miyamon44)
    CData Software Japan 合同会社
    →主にSaaSのAPIにSQLでアクセスできるコネクタや
    アプリケーションを開発・提供
    プロダクトチーム
    →データパイプライン関連の問い合わせやサポートを中心に日々
    従事。他にはAWSなどのクラウドサービスと自社製品での検証
    や技術ブログ、たまにコネクタ開発など色々

    View Slide

  5. なぜAppflow でSalesforce → Snowflake連携を
    試そうとしたのか?

    View Slide

  6. 仕事柄、こんな問い合わせを受けることがよくあるので・・
    その1
    「部門毎で管理してるデータ(SaaS,etc)を横断的に可視化したいです!」
    「ごりごりのデータ分析基盤構築までは考えてないです!!」
    ELTでCloudDWHとかに加工無しデータを持ってくるところからで良さそ
    うかなーー

    View Slide

  7. 仕事柄、こんな問い合わせを受けることがよくあります
    その2
    「GAやFBAdsなどのマーケティング関連のデータを分析したいので、そろそろデータ分
    析基盤を置きたいと考えています!」
    「けど開発したくないしサーバーとかも管理したくないです!!」
    SaaS 系のETLもしくはELTサービスが欲しいんだなーー

    View Slide

  8. 仕事柄、こんな問い合わせを受けることがよくあります
    その3
    「Salesforce とかMarketo から顧客・リードデータをDWH上(Snowflake)で分析した
    いっす!」
    「けどアドホックで良いのでなるべくお金を掛けないで実現したいっす!!」
    API経由のデータだけどアドホックに簡単に取得できるサービスが欲しい
    のかな

    View Slide

  9. 振り返ると・・・
    ELTでCloudDWHとかに加工無しデータを持ってくるところからで良さそ
    うかなーー
    SaaS 系のETLもしくはELTサービスが欲しいんだなーー
    API経由のデータだけどアドホックに簡単に取得できるサービスが欲しい
    のかな

    View Slide

  10. Amazon Appflow でも良いんじゃない?

    View Slide

  11. Amazon Appflow

    View Slide

  12. Amazon Appflow is なに?
    SaaS データを中心としたデータ連携(転送?)サービス

    View Slide

  13. データソースコネクタ
    結構ニーズがありそうなコネクタが揃っている!
    (個人的には汎用系コネクタあるとなお嬉しかった)

    View Slide

  14. ディスティネーションコネクタ
    SaaS → S3 というパターンから、
    SaaS → Cloud DWH
    SaaS → SaaS までもできる
    例えば、、、
    Zendesk でチャット対応したユーザーの情報をSalesforce に
    書き込む
    例えば、、、
    Salesforce、Marketo のユーザー情報をSnowflake で統合すると

    View Slide

  15. Amazon Appflow is ETLか? ELTか?

    View Slide

  16. Amazon Appflow is ETLか? ELTか?
    ## ETL

    View Slide

  17. Amazon Appflow is ETLか? ELTか?
    ## ELT

    View Slide

  18. Amazon Appflow is ETLか? ELTか?
    ## ELT

    View Slide

  19. Amazon Appflow is ETLか? ELTか?
    Appflow内で行える変換機能
    - データソースと同期先のフィールドマッピング
    - 取込みデータの妥当性
    - フィルター条件
    - 追加フィールドの取込み
    - 値のマスキング、文字列の切り捨て設定
    ※Salesforceの場合は削除レコードの扱いを設定できた
    基本的にはデータをそのまま送信先に転送するELTサービス

    View Slide

  20. Salesforce → Snowflake を試してみた
    (冒頭でもお伝えしましたが)
    Salesforce の取引先情報をSnowflake に変換なしでそのまま連携。
    構成はこんなシンプルな感じに自動連携を。

    View Slide

  21. Salesforce → Snowflake を試してみた
    ちなみにAppflow のSnowflake への接続設定を確認すると、間に外部ステージとして S3 を挟むこ
    とがわかった

    View Slide

  22. Salesforce の接続設定
    OAuth での認証で接続

    View Slide

  23. Snowflake の接続設定
    Snowflake 側から参照するS3へのパスを設定したときのステージ名を
    入力する
    ..

    View Slide

  24. 接続エラー
    Snowflake からはCOPYコマンドでデータを取得することはできてるものの、 Appflow からはいろいろ試したもの
    の接続できず、、、
    頼みの綱のログも出なかったので万事休す、、、
    誰かこのエラーの対処方法わかる方いたら教えてホシイデス・・・_ | ̄|○

    View Slide

  25. 仕切り直しで構成変更
    (ノーコード感は薄くなるが…)
    Salesforce から S3 にデータをCSV出力し、それを定期的に Snowflake の COPYコマンドで取得
    する方法に切り替え

    View Slide

  26. S3 への接続設定
    オンデマンド、スケジュール実行が選べ

    View Slide

  27. Appflow のフローが作成完了

    View Slide

  28. Appflow の実行
    Appflow のフローが正常終了
    - S3にフロー名のフォルダが作成される
    - 実行単位でフォルダが分けられる
    - 実行日時付きのファイルが作成される

    View Slide

  29. Snowflake 側からS3 のデータを取りに行く
    Snowflake 側でやること
    - 連携用テーブル作成
    - COPYコマンドを実行
    - COPYコマンドを実行するタスクをスケジューリング化

    View Slide

  30. ようやく
    Snowflake 側にSalesforce のデータを定期的に取得することができました!
    ちなみに1度ロードしたS3のファイルは次回からは読まないようになってたのは
    個人的な発見でした

    View Slide

  31. まとめ
    - (色々ありましたが)ELTのデータローディング部分ではAppflow は手軽に試せる!
    特にAPIを意識しているビジネスサイドの方におすすめ
    - Appflow のSnowflake 連携はきっと簡単なはず!
    しかし世の中の数人くらいは同じエラーに遭遇するかも?
    - HTTPリクエストを指定できる汎用系コネクタか、DB系コネクタがあると嬉しい
    - ログ系がもう少し簡単に確認できると更に嬉しい
    特にデータソースへの生のリクエストとレスポンスなど見れると安心

    View Slide

  32. 最後に
    エンジニアメンバー募集中です!!
    ビビッときた方!まずは気軽に話でもしてみませんか??
    https://www.wantedly.com/companies/cd
    ata2/projects

    View Slide

  33. Thank you!!

    View Slide