O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Azure Antenna はじめての Azure Data Lake

544 visualizações

Publicada em

2018/4/3 Azure Antenna はじめての Azure Data Lake の資料
https://azure.connpass.com/event/82062/

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Azure Antenna はじめての Azure Data Lake

  1. 1. ※Azure Data Lake を初めて操作する方向けの内容です。
  2. 2. 日本マイクロソフト株式会社 デジタルトランスフォーメーション事業本部 データ & クラウド AI アーキテクト技術部 クラウドソリューションアーキテクト 高木 英朗 (Takagi Hideo) • Data Platform Tech Sales Team Blog http://aka.ms/dpblog • 個人の Blog http://whata.hatenablog.com/ • Twitter https://twitter.com/hidwatanabe/
  3. 3. Azure Data Lake の概要
  4. 4. 従来のビジネス分析プロセス 専用の ETL ツール スキーマの定義 クエリ レポート リレーショナル 業務 アプリケーション ETL パイプライン 1. ユーザーが求めるビジネス分析やレポート内容を事前に特定 2. レポート用のスキーマとクエリを定義する 3. データソースを特定する 4. 必要なデータを抽出して変換して、定義したスキーマにロードす るための ETL 処理を作成する (スキーマ オン ライト) 5. レポートを作成して、データを分析する トップダウン アプローチ
  5. 5. AI 時代のビッグデータ = すべてのデータに価値がある 無限に保存 分析 結果の参照 全てのデータソース からデータを収集 繰り返し 全てのデータには潜在的な価値がある (データは企業の資産) 全てのデータを蓄積する ネイティブフォーマットで保存する - スキーマを事前定義しない クエリを実行する時にスキーマを定義して変換する (スキーマ オン リード). ボトムアップ アプローチ
  6. 6. スキーマ オン リード abe, 95, 46, 85, 85 itoh, 89, 72, 46, 76, 34 ueda, 95, 13, 57, 63, 87 emoto, 50, 68, 38, 85, 98 otsuka, 13, 16, 67, 100, 7 katase, 42, 61, 90, 11, 33 {"name" : "cat", "count" : 105} {"name" : "dog", "count" : 81} {"name" : "rabbit", "count" : 2030} {"name" : "turtle", "count" : 1550} {"name" : "tiger", "count" : 300} {"name" : "lion", "count" : 533} {"name" : "whale", "count" : 2934} xxx.xxx.xxx.xxx - - [27/Jan/2018:14:20:17 +0000] "GET /item/giftcards/3720 HTTP/1.1" 200 70 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1" フォーマットを気にせ ずデータをためていく 使うときにはじめて データ構造を意識 SELECT ~~~ FROM ~~~ WHERE ~~~ ORDER BY ~~~; データを集めてためておく 使うときにデータ構造を定義して処理する
  7. 7. Microsoft AI Platform Azure AI Services Azure Infrastructure Tools
  8. 8. Azure Data Lake とは HDInsight Spark, Hive, Storm, Kafka Data Lake Analytics Data Lake Store WebHDFS YARN Azure Databricks ストレージ Azure Data Lake Store (ADLS) • どんなフォーマットのデータでも無制限に格納 できるストレージ • 分散型で分析処理パフォーマンスが高い • OSS との親和性 分析ツール Azure Data Lake Analytics (ADLA) • サーバレスの分析エンジン • 親しみのある SQL に近い U-SQL 言語 • 柔軟なスケールで大量データ処理が得意 • ジョブ単位の課金
  9. 9. Azure Data Lake 向き / 不向き 向いている • 大量のデータを保存 • 一か所に構造 / 非構造の様々なデータを統合 • データを作り、変換し、集約する • 大きなデータセットに対して分析クエリを実行 向いていない • 頻繁な読み書き • 多数の細かいデータの参照や書き込み ? ? ? ?
  10. 10. 料金の考え方 Azure Data Lake Analytics (ADLA) Azure Data Lake Store (ADLS) なし ¥ 224 / 時間 1 AU あたり 定常的にかかる費用 処理量に応じてかかる費用 ¥ 4.37 / 1GB / 月 データ容量 書き込み: ¥ 5.60 読み取り: ¥ 0.45 10万トランザクションあたり 例:米国東部 2 リージョン (2018/04/03 時点) ADLA: https://azure.microsoft.com/ja-jp/pricing/details/data-lake-analytics/ ADLS: https://azure.microsoft.com/ja-jp/pricing/details/data-lake-store/
  11. 11. 事例紹介
  12. 12. 事例: 国立大学法人 岐阜大学 様 事例 URL https://customers.microsoft.com/en-us/story/gifu-u 大学本来の価値を向上させる "研究 IR" 実践に向け、膨大な情報資産を多様な書式・形式のま ま管理し、分析・活用する画期的な情報基盤を、クラウドで実現 <背景と狙い> • 「岐阜大学の将来ビジョン」を強力に後押しするために、大 学 IR に必要な情報基盤を追求。 • 多種多様な活動を行っている教員たちを正しく評価し、各 人のモチベーションを高めていくためにも、学内にある生の データを集めることが、もっとも重要なことだった。 • 事務員の PC の中に、Excel などにまとめられた生のデータ が数多く保存されていたのです。システムが定義するデータ 構造の枠内に納まらなかった、そうした生のデータを集めて、 分析できるように環境を整えることが重要だった。 <導入効果> • 学内のあらゆるデータを Azure Data Lake Store で管理し、 そのデータを検索する仕組みとして Azure Search を活用。 • 「今までは、漠然と推測していた事柄が、データによって裏付 けられ、グラフなどの形ではっきりと把握できるようになったこ とは、大きな成果」。
  13. 13. 事例: 株式会社リコー 様 「SPA=製造小売業」のお客様の抱える課題を解決 <背景> • コピー機の主戦場は企業の Office だったが、ビジネスを拡大するためにお 客様が活躍する現場、社会に広げて、データを集めて解析して価値の出る ように可視化→ビッグデータの活用 <課題> • これまでの考え方では ビックデータを始められない • マシン/IaaSベースでは予算・調達が足かせに • 試験的な取り組みなので、リソースが少ない • 多種、多量なデータ管理方法確立に時間がかかる • 製造小売業において、様々なデータを扱わなければならない • SNS、店舗画像、POS、etc… • これらのデータを読み込んだ段階でどういう風に処理するかを決めておくの は非常に難しい <導入メリット> • Azure Data Lake で低コストに始めることができた。 • スキーマ オン リードのためまずデータを保存できる。 • Cognitiveを使ってツイートされた画像を分析して、性別、年齢推定等 AI 時代を生き抜くためのビッグデータ基盤 ~リコーの実案件で見えたAzure Data Lakeの勘所~ https://youtu.be/zfD7d0Kqk_s
  14. 14. Azure Data Lake Store の アーキテクチャと機能
  15. 15. Azure Data Lake Store (ADLS) とは HDInsight Azure Data Lake Analytics 形式を問わず無制限に蓄積できる巨大なストレージ 様々なデータ分析処理に最適化 ADLS 業務アプリ ソーシャル デバイス クリックストリー ム センサー 動画 Web リレーショナル Batch MapReduce Script Pig SQL Hive NoSQL HBase In-Memory Spark Predictive R Server Batch U-SQL 利用する 保存する
  16. 16. ADLS のアーキテクチャ 分散ストレージ • 書き込まれたファイルは最大 250MB のエクステントに 分割 • それぞれのエクステントは複数のデータノードに分散 • ファイルの読み書きは並列で実行されるので、 スループットが出やすい 耐障害性 • それぞれのエクステントは3つのレプリカを保持 • 参照はどのレプリカからも可能 • レプリカに障害があっても別のレプリカから復元 ファイル書き込み 1 2 3 4 5 レプリカ 1 書き込み レプリカ 2 レプリカ 3 コミット エクステント
  17. 17. ADLS にデータを保存するには Azure Event Hubs Azure Storage Blobs カスタム プログラム .NET SDK Azure CLI Azure Portal Azure PowerShell Azure Data Factory Azure SQL DB Azure SQL DW Azure tables オンプレミス DB ADLS AdlCopy Azure Data Factory Hadoop DistCp PolyBase SSIS Azure Stream Analytics
  18. 18. ADLS データの操作: Azure 管理ポータル データのアップロード、プレビュー、アクセス権管理
  19. 19. ADLS データの操作: Visual Studio Visual Studio でも ADLS 上のファイルやフォルダ管理が可能 データのフォーマットに基づいて、読み取りクエリの自動生成も可能
  20. 20. ADLS データの操作: Azure Data Factory 他のデータソースから ADLS にデータをコピーすることが可能 スケジュール実行や、データの変換アクティビティも実行可能
  21. 21. ADLS と BLOB の比較 Azure Data Lake Azure BLOB Storage 目的 データ分析に最適化されたストレージ 汎用オブジェクト ストア 概念と構造 ファイルとフォルダの階層型の構造 コンテナーと BLOB 形式のフラットな構造 認証 Azure AD アクセスアカウントキーと SAS(Shared Access Signature) 承認 POSIX アクセス制御リスト (ACL) Azure AD の ID に基づく ファイルやフォルダレベルに設定可能。 アカウントレベルの承認はアカウントアクセスキー アカウント、コンテナー、BLOB レベルの承認は SAS 分析パフォーマンス 並列分散で分析に最適化 高スループットおよび高 IOPS 分析ワークロードに最適化されていない 容量制限 無制限 ストレージアカウントあたり 500TiB まで VS
  22. 22. Azure Data Lake Analytics (ADLA) とは ADLA Azure SQL DW Azure SQL DB Azure Storage Blobs ADLS SQL Server Azure VM サーバ レスの分析クエリ サービス きめ細かい分析処理を大量データに最適化 「U-SQL」クエリ言語を使用 @rows = EXTRACT name string, id int FROM “/data.csv” USING Extractors.Csv( ); OUTPUT @rows TO “/output.csv” USING Outputters.Csv(); 規定のストレージ (ADLS or Blob) だけでなく、SQL DW、SQL Server などにもクエリ実行が可能
  23. 23. Azure Data Lake Analytics と U-SQL の基本
  24. 24. U-SQL という言語 U-SQL で分析処理を記述し、 ADLA にサブミット。 分散処理の実行プランを自動 的に生成。 実行プランに基づいて、ノード が自動的に割り当てられ、処 理が実行される。 @rows = EXTRACT name string, id int FROM “/data.csv” USING Extractors.Csv( ); OUTPUT @rows TO “/output.csv” USING Outputters.Csv(); ✓ SQL ライクなシンプルなクエリ言語 ✓ C#, R, Python, Cognitive Services 等での拡張 ✓ スキーマ定義済み、未定義のどちらでもクエリ可能 SELECT … FROM … WHERE GROUP BY … HAVING JOIN OVER +
  25. 25. シンプルな U-SQL の例 @tweet = EXTRACT date string, time string, author string, tweet string, FROM “/Input/TwitterHistory.csv” USING Extractors.Csv(); @result = SELECT author AS author, COUNT(*) AS tweetcount FROM @tweet GROUP BY author; OUTPUT @result TO “/Output/TwitterAnalysis.csv” ORDER BY tweetcount DESC USING Outputters.Csv(); ① 保存されているファイルのフォー マットを読み取って、カラム名を 付与 ② 付与したカラム名を使ってクエリ を実行 ③ 結果を CSV 形式で出力 ユーザーごとのツイート数を数えたい
  26. 26. C# 関数を利用した U-SQL @attribute = SELECT new SQL.ARRAY<string>(col1.Split(',')) AS y FROM @csv; @country = SELECT new SQL.ARRAY<string>(y[3].Split('=')) AS z FROM @attribute; @output = SELECT Region.ToUpper() AS NewRegion FROM @searchlog; 文字列を大文字に変換 [col1] の中をカンマで分割 U-SQL 内で C# 関数を使用することで柔軟な処理を実行することが可能 col1 col2 name=hideo,age=50,div=tech,country=jp Microsoft name=toshio,age=60,div=sales,country=us Microsoft こういう CSV ファイルがあったとして “jp”や”us”を取り出したい 4番目の要素を = で分割 →”jp” や “us” が取り出せる
  27. 27. [ご参考] U-SQL のデータ型・集約関数・結合 ビルトインの集約関数 • AVG • ARRAY_AGG • COUNT • FIRST • LAST • MAP_AGG • MAX • MIN • STDEV • SUM • VAR データ型 Numeric byte, byte? sbyte, sbyte? int, int? uint, unint? long, long? decimal, decimal? short, short? ushort, ushort? ulong, unlong? float, float? double, double? Text char, char? string Complex MAP<K> ARRAY<K,T> Temporal DateTime, DateTime? Other bool, bool? Guid, Guid? Byte[] http://usql.io/ 結合 • INNER JOIN • LEFT or RIGHT or FULL OUTER JOIN • CROSS JOIN • SEMIJOIN • Equivalent to IN subquery • ANTISEMIJOIN その他、パラメータの利用やウィンドウ関数等詳細情報やチュートリアルは左記 URL を参照
  28. 28. サンプルジョブ・チュートリアル Azure 管理ポータルからサンプルジョブ実行やチュートリアルを実施することが可能。
  29. 29. Analytics Unit (AU) ✓ AU = コンピュートリソースの単位 (2CPU, 6GB RAM *2018/2/15現在) ✓ 1AU は 1タスクを担当する ✓ AU の数と実行時間でコストが決まる 前のステージでの必要なタ スクの処理 (クリティカルパ ス) が終ってから次のステー ジが実行される ジョブ (AU = 4) 完了 4タスクずつ並列実行される 4AU でも 2タスク しか 並列実行できない ジョブの処理の順番 タスクを Vertex と呼び タスクのグルーピングを SuperVertex と呼びます 同時に実行できるタスクの グループ
  30. 30. U-SQL クエリを実行するには Azure 管理ポータル Visual Studio Visual Studio Code Azure CLI, PowerShell SDK for .NET, Python, Java, Node.JS U-SQL / カスタムコード開発、チュー ニング等 アドホック クエリ、管理操作等 ADLA 自動化、バッチジョブ、 管理操作等 カスタム アプリケーション開発 管理操作等
  31. 31. ADLA の操作: Azure 管理ポータル U-SQL を書く U-SQL ジョブを実行する 実行中のジョブを停止する ユーザーの追加や権限の設定をする リソースやコストの使用状況を可視化する ジョブ実行状況を可視化する ADLA アカウントの作成
  32. 32. ADLA の操作: Visual Studio ジョブの進捗の 可視化 クエリパフォーマンスの チューニング U-SQL 実行プランの 可視化 メタデータ カタログ (テーブル, ビュー等) の 参照 U-SQL や C# カスタムコードの 作成 メタデータ オブジェクト (テーブル, ビュー等) の 作成 U-SQL ジョブの 実行と停止 U-SQL と C# の デバッグ
  33. 33. Visual Studio: U-SQL ジョブのサブミット Visual Studio から ADLA に直接ジョブをサブミットすることが可能 ジョブのサブミット時に並列処理等の調整も可能
  34. 34. U-SQL カタログ ➢ テーブル データを構造化し、分散配置 をコントロールすることができる RDBMS と同様のビュー機能 テーブルデータ型の値を返す 関数 CREATE VIEW V AS EXTRACT… CREATE VIEW V AS SELECT … CREATE TABLE T ( … ) INDEX I CLUSTERED ( … ) DISTRIBUTED BY …; CREATE FUNCTION F (@arg string = “default”) RETURNS @res [TABLE ( … )] AS BEGIN … @res … EN; ➢ ビュー ➢ テーブル値関数 (TVFs) スキーマを定義して、データの形式を分かるようにする
  35. 35. カタログを作成すると・・・ テーブルやビュー等によって RDBMS のようにデータを管理できる状態になる テーブル データベース ビュー、プロ シージャ等 テーブルのカラム情報
  36. 36. 非構造化データと AI ~ Cognitive 拡張 Cognitive Services の学習済みモデルを使っ た AI 拡張機能を U-SQL で実行 イメージング: • 顔を検出する • 感情を検出する • 画像の内容を読み取ってタグ付けする • OCR (文字認識) テキスト: • キー フレーズ抽出 • 感情分析 ▼ビルトインの Cognitive 機能
  37. 37. R / Python による高度な分析 U-SQL に R や Python を組み込んで高度な分析処理を実行することが可能 • 不正検知 • 販売予測 • 倉庫効率化 • 予知保全 • など 組み込み方法は以下の 2 つ ✓ U-SQL 内に直接スクリプトを記述 ✓ スクリプトファイルを作成して U-SQL 内に読み込み https://docs.microsoft.com/ja-jp/azure/data-lake-analytics/data-lake-analytics-u-sql-python-extensions https://docs.microsoft.com/ja-jp/azure/data-lake-analytics/data-lake-analytics-u-sql-r-extensions
  38. 38. R コードの埋め込み例 REFERENCE ASSEMBLY [ExtR]; DECLARE @myRScript = @" inputFromUSQL$Species = as.factor(inputFromUSQL$Species) lm.fit=lm(unclass(Species)~.-Par, data=inputFromUSQL) outputToUSQL=data.frame(summary(lm.fit)$coefficients) colnames(outputToUSQL) <- c(""Estimate"", ""StdError"", ""tValue"", ""Pr"") outputToUSQL "; @RScriptOutput = REDUCE … USING new Extension.R.Reducer(command:@myRScript, rReturnType:"dataframe"); R による線形回帰モデルを U-SQL に埋め込む例
  39. 39. サービスの連携
  40. 40. 連携の概要 Azure Event Hubs Azure Storage Blobs カスタム プログラム .NET SDK Azure CLI Azure Portal Azure PowerShell Azure Data Factory Azure SQL DB Azure SQL DW Azure tables オンプレミス DB ADLS AdlCopy Azure Data Factory Hadoop DistCp PolyBase SSIS Azure Stream Analytics ADLA QueryFederated Query
  41. 41. Federated Queries Data Lake Analytics Azure のデータストアにクエリを実行する ✓ データを移動させずに各データストア にクエリを実行 ✓ データの移動にかかる時間やコスト を抑える ✓ クエリをプッシュダウンしてリモート側 で実行することも可能 Azure SQL DW Azure SQL DB SQL Server Azure VM Azure Data Lake Store Azure Storage Blobs
  42. 42. データパイプライン管理 Azure Data Factory HDInsight Cosmos DB SQL DB SQL DW Hadoop での分析 グローバル分散 NoSQL マネージド RDBMS スケールアウト データ ウェアハウス Data Factory 40 以上のデータソースを サポート オンプレミス、Azure、 Azure外のクラウド Data Lake Data Factory を使用して Azure 内外の様々な サービスとの連携が可能
  43. 43. Event Hub 連携 Event Hub ADLSStream Data ✓ Event Hub の “Capture” 機能で ADLS に直接データを保存することが可能。 ✓ ADLS 保存時に日付等に合わせて動的 なフォルダ階層を作成することが可能。 センサー、Web 等のストリームデータを Event Hub を 経由して ADLS に蓄積
  44. 44. コマンドラインを使ったADLA の操作: Azure CLI az dla job submit --account アカウント名 --job-name ジョブ名 --script U-SQL スクリプトファイル ジョブのサブミット az dla job show --account アカウント名 --job-identity ジョブ ID ジョブの詳細表示 シンプルなコマンドで ADLA の操作が可能。Windows, macOS, Linux で利用可能。 az dla job list --account アカウント名 ジョブの一覧表示 https://docs.microsoft.com/ja-jp/azure/data-lake-analytics/data-lake-analytics-get-started-cli2
  45. 45. コマンドラインを使った ADLS の操作: Azure CLI az dls fs upload --account アカウント名 --source-path 元ファイル名 --destination-path アップロード先 ファイルのアップロード az dls fs list --account アカウント名 --path フォルダ名 ファイルとフォルダのリスト表示 シンプルなコマンドで ADLS の操作が可能。Windows, macOS, Linux で利用可能。 az dls fs preview --account アカウント名 --path ファイル名 --length 読み取るバイト数 ファイルのプレビュー表示 https://docs.microsoft.com/ja-jp/azure/data-lake-store/data-lake-store-get-started-cli-2.0
  46. 46. コマンドラインを使った ADLS の操作: AdlCopy Azure Storage Blob から ADLS へのデータコピー、ADLS 同士のデータコピーが可能。 または AdlCopy.exe /Source Blob の URL /Dest ADLS へのコピー先 /sourcekey Blob の アクセスキー ADLA ジョブを利用した並列コピーも可能 (高速なコピーが可能) AdlCopy.exe /Source *** /Dest *** /sourcekey *** /Account ADLA アカウント /Units AU 数 できる できない Blob ADLS ADLS ADLS ADLS Blob https://docs.microsoft.com/ja-jp/azure/data-lake-store/data-lake-store-copy-data-azure-storage-blob
  47. 47. Azure Data Lake のセキュリティ
  48. 48. セキュリティ: Azure AD 連携
  49. 49. セキュリティ: ファイアウォール 72.1.5.0 – 72.1.6.255 64.34.55.130 - 64.34.55.130
  50. 50. セキュリティ: POSIX に似た ACL (アクセス管理) 読み取り (R) ファイルの内容を読み取ることができる フォルダーの内容を一覧表示するには読み取りと実行が必要 書き込み (W) ファイルへの書き込みまたは追加を実行できる フォルダーに子項目を作成するには、書き込みと実行が必要 実行 (X) ファイルに対しては影響しない フォルダーの子項目をスキャンするために必要 / a b c ユーザーやグループに対して、ファイルやフォルダー単位でのアクセスを制御 付与する権限
  51. 51. セキュリティ: 監査ログ GitHub [T1] Alice, Write [T2] Bob, Read監査ログ 保存
  52. 52. 参考情報① ドキュメント・ブログ • Azure Data Lake https://azure.microsoft.com/ja-jp/solutions/data-lake/ • Azure Data Lake Blog https://blogs.msdn.microsoft.com/azuredatalake/ • U-SQL http://usql.io/ • Github https://github.com/Azure/USQL イベント セッション動画 • いざ無制限のデータの彼方へ! ~ Azure Data Lake 開発の知識とベスト プラクティス ~ https://channel9.msdn.com/Events/de-code/2016/DBP-020 • あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビック データ処理基盤のアーキテクチャと実装 https://channel9.msdn.com/Events/de-code/2017/DI12 • あらゆるデータに価値がある!アンチ断捨離ストのための Azure Data Lake https://channel9.msdn.com/Events/de-code/2017/DI07 • AI 時代を生き抜くためのビッグデータ基盤 ~リコーの実案件で見えたAzure Data Lakeの勘所~ https://youtu.be/zfD7d0Kqk_s
  53. 53. 参考情報② • 個人ブログ : U-SQL 入門 http://whata.hatenablog.com/ • 【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編] https://aka.ms/W66jgk • 【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編] https://aka.ms/W9kcdx • SlideShare https://www.slideshare.net/hidwatanabe/ • de:code 2018 https://www.microsoft.com/ja-jp/events/decode/2018/ [DA11] AI / アナリティクスを支えるビッグ データ基盤 Azure Data Lake ~アーキテクチャと実践解説~

×