「既に起こったことをレポートする」ことから、「これから起こりそうなことを予測する」方向へ。この要件を満たすためにどのようなデータを収集すべきか、前もって決めるのは困難です。ならば、あらゆる種類のデータを貯めておいて、必要になった時に取り出せばいい。それがデータ レイクの基本的な発想です。Azure Data Lake は、あらゆる形式のデータを無尽蔵に貯めておけるストレージであり、アプリケーションの要件に合わせて柔軟にデータを取り出せる Query as a Service です。
本セッションでは、 Azure Data Lake を活用したアプリケーションの設計と開発について説明します。
関連リソース 1: Azure Data Lake Analytics (https://azure.microsoft.com/ja-jp/services/data-lake-analytics/)
関連リソース 2: Azure Data Lake Store (https://azure.microsoft.com/ja-jp/services/data-lake-store/)
関連リソース 3: [DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装 (https://www.microsoft.com/ja-jp/events/decode/2017/sessions.aspx#DI12)
製品/テクノロジ: Microsoft Azure/アーキテクチャ/クラウド/ビッグ データ
野村 一行
日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
エバンジェリスト
66. Azure Data Lake Store は
Azure Active Directory (AAD) と統合
保持されているデータ量
保持されているデータの期間
ファイルの数
各ファイルのサイズ
取り込みのスループット
数KBから数PBまで
シームレスに
スケール
67. ADL Store の各ファイルはブロックに分割
ブロックはバックエンドのストレージ システ
ム内の複数のデータ ノードに分散配置
バックエンドのストレージ データノードの数
が十分にある場合、任意のサイズのファイル
が保存可能
Azureでは、事実上無制限のリソースを持つ
バックエンドストレージを実行
メタデータは、各ファイルについて保持
メタデータは無制限
Azure Data Lake Store file
…Block 1 Block 2 Block 2
Backend Storage
Data node Data node Data node Data node Data nodeData node
Block Block Block Block Block Block
68. 並列処理により、ADL Storeは高いスルー
プットを実現
ADL Store上のファイルの読み込み処理は、
バックエンドの複数ノードに分散したスト
レージに対して並列に実行
読み込み操作
Azure Data Lake Store ファイル
…Block 1 Block 2 Block 2
バックエンドのストレージ
Data node Data node Data node Data node Data nodeData node
Block Block Block Block Block Block
78. • 単純な場合は View
• パラメータつきの場合
は TVF
ビュー
CREATE VIEW V AS EXTRACT…
CREATE VIEW V AS SELECT …
• ユーザー定義オブジェクトは含められない (UDF、UDO)
• インライン化
Table-Valued Functions (TVF)
CREATE FUNCTION F (@arg string = "default")
RETURNS @res [TABLE ( … )]
AS BEGIN … @res = … END;
• パラメータつき
• 1つ以上の結果
• 複数のステートメントを含められる
• ユーザーコードを含められる (アセンブリ参照が必要)
• 常にインライン
• 指定した戻りスキーマに対するスキーマまたはチェックを推論
79. WebLogRecords.txt
INSERT INTO LogRecordsTable
SELECT UserId, Start, End ,
Region
FROM @rs;
テーブルのポピュレーション
要求されたフィールドのみ
@result =
SELECT UserID, (End.Subtract(Start)).TotalSeconds AS
Duration
FROM LogRecordsTable ORDER BY Duration DESC FETCH 10;
OUTPUT @result TO “swebhdfs://Logs/Results/Top10.Tsv”
USING Outputters.Tsv();
Top10.Tsv
テーブルに対し
直接クエリを実行
CREATE TABLE LogRecordsTable(UserId int, Start DateTime, End Datetime, Region string
INDEX idx CLUSTERED (Region ASC) PARTITIONED BY HASH (Region));
Azure Data Lake
84. REFERENCE ASSEMBLY ImageCommon;
REFERENCE ASSEMBLY FaceSdk;
REFERENCE ASSEMBLY ImageEmotion;
REFERENCE ASSEMBLY ImageTagging;
REFERENCE ASSEMBLY ImageOcr;
@imgs =
EXTRACT FileName string, ImgData byte[]
FROM @"/images/{FileName:*}.jpg"
USING new Cognition.Vision.ImageExtractor();
// Extract the number of objects on each image and tag them
@objects =
PROCESS @imgs
PRODUCE FileName,
NumObjects int,
Tags string
READONLY FileName
USING new Cognition.Vision.ImageTagger();
OUTPUT @objects
TO "/objects.tsv"
USING Outputters.Tsv();
85. REFERENCE ASSEMBLY [TextCommon];
REFERENCE ASSEMBLY [TextSentiment];
REFERENCE ASSEMBLY [TextKeyPhrase];
@WarAndPeace =
EXTRACT No int,
Year string,
Book string, Chapter string,
Text string
FROM @"/usqlext/samples/cognition/war_and_peace.csv"
USING Extractors.Csv();
@sentiment =
PROCESS @WarAndPeace
PRODUCE No,
Year,
Book, Chapter,
Text,
Sentiment string,
Conf double
USING new Cognition.Text.SentimentAnalyzer(true);
OUTPUT @sentinment
TO "/sentiment.tsv"
USING Outputters.Tsv();
87. • Data Lake の概念と役割
• 必要とされるまで、ネイティブフォーマットのまま大量の生データを
保持し続けるリポジトリ
• Azure Data Lake の構成
• Data Lake Store:ビッグデータの分析ワークロード用のハイパースケールな
リポジトリ
• Data Lake Analystics:あらゆる規模のデータを処理する、
伸縮自在な分析サービス
• Azure Data Lake の利用方法
• U-SQL:宣言型の SQL と命令型の C# とのハイブリッド言語
• 外部データソースへの分散クエリ、Cognitive Services との連携も可能
ビッグデータ分析も as a Service へ