Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20180630 data transformationusinglogicflow

1,338 views

Published on

2018/06/30 Interact 2018 で利用したスライド

Published in: Technology
  • Be the first to comment

20180630 data transformationusinglogicflow

  1. 1. Data Transformation using LogicFlow 2018/06/30 LogicFlow-ja 小尾 智之 #MSInteract18 #T12
  2. 2. Self Introduction Attribute1: VB / LogicApps-Flow-PowerApps @twit_ahf Attribute2: 艦これ / 御城プロジェクトRe / EDF / メガネ / クマ / プロレス tomoyuki.obi http://el.jibun.atmarkit.co.jp/ahf Community: LogicFlow-ja / CLR/H Microsoft MVP for Microsoft Azure(2017.03 ~)
  3. 3. https://www.facebook.com/groups/logicflowja/
  4. 4. Overview / Cost
  5. 5. Logic Apps / Flow とは • コネクタを利用して複数システムを連携(iPaas) – コネクタは用意されたものだけでなく自作も可能 – 既存サービスをカスタムコネクタとして登録可能 • デザイナー上での操作でほぼ完結する ローコード/コードレス開発(Low-Code / Codeless) • オンプレミス環境を交えても利用可能 – オンプレミス環境の API も利用可能
  6. 6. Dynamics365 Office365 Microsoft Azure Logic Apps Flow / PowerApps
  7. 7. Logic Apps 従量課金プラン https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/ Flow とは課金単位が異なる
  8. 8. Logic Apps/Flow 仕様と制限 LogicApps Flow 最大実行継続時間 90 日 30 日 ストレージリテンション期間 90 日 30 日 最小繰り返し時間 1 秒 1分 最大繰り返し間隔 500 日 500 日 実行履歴保持期間 7~90 日 28 日 ForEach レコード数 100,000 5,000 Loop Until 回数 5,000 5,000 SplitOn 最大数 100,000 5,000 ForEach 並列処理数 初期値 20 最大 50 初期値 1 最大 50 アクション実行数(5分間) 100K / 300K 同時呼出し数 2,500 エンドポイント同時受信数 1,000 エンドポイント読み取り可能呼出し数 60,000 エンドポイント起動可能呼出し数 45,000 LogicApps Flow 1 フローでのアクション数 500 250 1 フローでのネスト数 8 5 1リージョンでのフロー数 1,000 (1,000?) 1 フローごとのトリガ数 10 - 一つの式での最大文字数 8,192 8,192 アクション/トリガ名の文字数 80 80 コメントの文字数 256 256 パラメーター数 50 - https://docs.microsoft.com/ja-jp/azure/logic-apps/logic- apps-limits-and-config https://docs.microsoft.com/ja-jp/flow/limits-and-config Flow:制限事項と構成 LogicApps:制限事項と構成
  9. 9. 1 Action (Trigger) 1 Action 1 Action 1 Flow Flow の課金単位 LogicApps の課金単位
  10. 10. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch
  11. 11. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch 228 Connectors
  12. 12. 参考:2年前の状況
  13. 13. なぜデータ変換が必要か • データレイアウトはサービスによってまちまち • 昔は関係システム間で統一を図りやすかった • 今は関連するサービスが多数なので統一は難しい • ログにしても複数個所に分散することも多い • iPaas な LogicApps/Flow ではなおさら
  14. 14. データ変換で行われること(一例) • レイアウト変換 – フラットレコードをXML形式やJSON形式に – 固定長を可変長に、またはその逆 • コード変換 – A社のコードをB社用に変換 – 送付先のルールに基づいた変換 • 属性の追加 – 商品コードに対する商品名 – 明細上の合計金額と伝票上の合計金額
  15. 15. 簡単な変換までは行える EDI などで求められる内容は不向き JSON に対しての変換は得意だが 別マスタ参照など凝ったことができない 一通りの変換処理が可能 Visual Studio 2015 が必要な点がネック データ変換の方法
  16. 16. Logic Apps Liquid EIP 固定長データ 〇 × ◎ 可変長データ(CSV) 〇 × ◎ XML 〇 〇 ◎ JSON 〇 ◎ × HTML △ × × 利用のしやすさ 〇 〇 × ※個人的な主観です
  17. 17. Logic Apps の基本機能
  18. 18. LogicFlow の変換アクション データ操作(Compose) コネクタで提供されるものが基本
  19. 19. 配列を CSV データに変換 配列を HTML Table に変換 HTML タグを除去 これらの変換機能は 通常のデータ変換とは異なる
  20. 20. コンテンツを JSON 型に変換する スキーマ定義するとダイアログで選択可能になる サンプルデータがあれば自動でスキーマは生成可能 変換された値を新しく 生成している
  21. 21. 配列要素を結合する 配列の要素を 「次を使用して結合」で 設定した文字にて一つに結合する Join 関数と同様の挙動
  22. 22. 要素を作成する 変数に近いが 値の再設定は行えない JSON 値を設定した場合 自動で JSON と認識される (ただし Object として挙動)
  23. 23. Object String Json Xml Array Int Float Bool LogicFlow における型 string や int、json 等といった 変換関数にて変換を行う
  24. 24. 要素を選択する 配列要素から特定の値に 限定した新しい配列を作成再表示時に不具合があるが 記載内容は正しいので注意
  25. 25. 配列のフィルタ 同様の表示不具合がある 配列要素から特定の条件を 満たす要素だけに限定
  26. 26. ワークフロー関数 https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-workflow-definition-language
  27. 27. プロパティ操作関数 ここで言う プロパティ=JSON値 指定した JSON 値を 変更して結果を 「新しいオブジェクト」 として返却 Mush.Drink = “kinmugi” のつもりでも Mush2 = Mush.Clone Mush2.Drink = “kinmugi” として動作している
  28. 28. 統合アカウントを利用した変換
  29. 29. Enterprise Integration Action
  30. 30. 統合アカウントの作成 スキーマ・マップの作製 LogicFlow との関連付け 利用までの流れ
  31. 31. 変換対象の レイアウト 変換ルール 変換時に 利用する アセンブリLiquidテンプレート EIPで作成したxslt または .NET な DLLEIP の場合に必要
  32. 32. バッチの構成を定義し 意識せずに定型バッチ 処理を行うことが可能
  33. 33. BizTalk Schema 新規項目の追加で行う フラットファイル用と XMLファイル用で別
  34. 34. Schema 作成ウイザード
  35. 35. Schema 作成ウイザード
  36. 36. BizTalk Map 新規項目の追加でマップを選択して行う 項目間を繋いだり、間に処理を経由させたりして入出力を定義
  37. 37. BizTalk Functoid 拡張 Functoid 変換 Functoid 集計 Functoid 日時計算 Functoid 論理演算 Functoid
  38. 38. BizTalk Functoid 演算Functoid 関数演算 Functoid 文字演算 Functoid
  39. 39. Script Functoid マップ上で利用する処理 を C# や VB.NET で作成 作成した処理はマップに含む (インライン)か 外部アセンブリを呼出 統合アカウントに対してアッ プロードする必要がある
  40. 40. ビルドすることで マップ(xslt)が作成される 統合アカウントのマップに アップロード
  41. 41. 統合アカウントを利用したい LogicFlow 上で設定が必要 統合アカウントと LogicFlow は 同一リージョンの必要あり
  42. 42. 統合アカウントにUPすると LogicFlowで利用可能になる
  43. 43. エンコードとデコード エンコード =XML から変換 デコード =XMLに変換
  44. 44. Liquid Template • Web アプリ向けに開発されたテンプレートエンジン • オープンに公開されている ( https://github.com/Shopify/liquid ) • Shopify サービス用に強化された Shopify Liquid と 静的サイト向け Jekyll Liquid もある Asp.Net で Razor やった人なら理解しやすいかも
  45. 45. Liquid Template マップとしてテンプレートを UPしておく必要がある
  46. 46. まとめ • Logic Apps での変換機能はある程度揃っている – 基本機能:込み入ったことをしようとすると大変 – Liquid:JSON を変換する場合は手軽 – EIP:一番多機能だが手間がかかる • iPaas である以上何かしらの変換は必要 – ケースによって手段を使い分けるのがベター
  47. 47. Integration Service Environments(ISE)
  48. 48. アンケートにご協力ください! • Compass Interract2018ページにアンケートへのリンクとQRコードがあります – https://interact.connpass.com/event/77420/ • アンケートリンク – URL • https://forms.office.com/Pages/ResponsePage.aspx?id=0emDRJ2XDkOMJVhhhABT1kY0s84rWEFMh6lvL SQ5jRNUQkQ1NzRUV1BZVUY5T1JNUVNSWlhCMlhNMy4u – QRコード 48
  49. 49. Appendix
  50. 50. Appendix • LogicFlow-ja ( https://www.facebook.com/groups/logicflowja/ ) • LogicFlow を扱っている Blog – nrjlog ( http://zuvuyalink.net/nrjlog/ ) – てすとぶろぐ ( http://blogahf.blogspot.jp/ ) • Liquid ( https://shopify.github.io/liquid/ ) • Azure LogicApps ( https://blogs.msdn.microsoft.com/logicapps/ ) • Flow – Blog (https://flow.microsoft.com/en-us/blog/) • PowerApps – Blog (https://powerapps.microsoft.com/en-us/blog/) • Twitter Hashtag – LogicApps → #LogicApps – Flow → #MicrosoftFlow

×