44. 45
HDInsight
Spark, Hive,
Storm, Kafka
Data Lake
Analytics
YARN
Azure
Databricks
ストレージ
Azure Data Lake Store
• 無制限に格納できるストレージ
• データフォーマットを問わない
• 分散型で分析処理の性能が高い
バッチ分析ツール
Azure Data Lake Analytics
• 「サーバレス」の分析エンジン
• SQL に近い U-SQL 言語
• 柔軟スケール&大量データ処理
• ジョブ単位の課金
Data Lake
Store
BLOB
Storage
45.
46. 47
Data Lake Analytics
Azure SQL DW Azure SQL DB
Azure
Storage Blobs
Data Lake Store 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();
Azure Storage 系だけでなく、
Database Services にも
クエリ実行が可能
47. 48
U-SQL で分析処理を記述
Data Lake Analytics に
サブミット
分散処理の実行プラン
自動的で生成
ワーカーノードを割り当て
処理が実行される
@rows =
EXTRACT
name string,
id int
FROM “/data.csv”
USING Extractors.Csv( );
OUTPUT @rows
TO “/output.csv”
USING Outputters.Csv();
✓ SQL ライクなシンプルなクエリ言語
✓ スキーマ定義済み、未定義データ対応
✓ C#, R, Python 拡張
SELECT … FROM …
WHERE
GROUP BY …
HAVING
JOIN
OVER
+
48. 49
@tweet =
EXTRACT date string,
time string,
author string,
tweet string,
FROM “/Input/TwitterHistory.csv”
USING Extractors.Csv();
@result =
SELECT author.ToUpper AS author,
COUNT(*) AS tweetcount
FROM @tweet
GROUP BY author;
OUTPUT @result
TO “/Output/TwitterAnalysis.csv”
ORDER BY tweetcount DESC
USING Outputters.Csv();
①EXTRACT
保存されているファイルの
フォーマットを読み取って
カラム名を付与
②SELECT
付与したカラム名を使って
クエリを実行
C# 関数の埋め込み
③OUTPUT
結果を CSV 形式で出力
~ ユーザーごとのツイート数を数えたい ~
49.
50.
51. 52
ビルトインの集約関数
• 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 を参照
57. 58
REFERENCE ASSEMBLY ImageCommon;
REFERENCE ASSEMBLY ImageOcr;
@imgs =
EXTRACT
FileName string,
ImgData byte[]
FROM @"/images/{FileName}.jpg"
USING new Cognition.Vision.ImageExtractor();
@ocrs =
PROCESS @imgs
PRODUCE FileName,
Text string
READONLY FileName
USING new Cognition.Vision.OcrExtractor();
画像に含まれるテキストを抽出する
https://github.com/Azure-Samples/usql-cognitive-imaging-ocr-hello-world
58. 59
REFERENCE ASSEMBLY ImageCommon;
REFERENCE ASSEMBLY ImageTagging;
@imgs =
EXTRACT
FileName string,
ImgData byte[]
FROM @"/images/{FileName}.png"
USING new Cognition.Vision.ImageExtractor();
@tags =
PROCESS @imgs
PRODUCE FileName,
NumObjects int,
Tags SQL.MAP<string, float?>
READONLY FileName
USING new Cognition.Vision.ImageTagger();
画像の意味を理解してテキスト化する
https://github.com/Azure-Samples/usql-cognitive-imaging-object-tagging-hello-world
72. 73
Azure Data Lake Store
Azure BLOB Storage
使いやすさカスタマイズ性
管
理
コ
ス
ト
の
削
減 IaaS クラスター PaaS (マネージド) クラスター Big data as a Service
BigData
Analytics
BigData
Storage
73. 74
構造/非構造化データ
ローデータ蓄積
(データ レイク)
ホットデータ収集
バッチ / インタラクティブ /
Advanced Analytics /
Stream
データソース
Operational
Systems
ERP
Master Data
Social
Sensors
Click Stream
Azure Data Lake Store
Azure SQL DW
W
バッチ / インタラクティブ /
Advanced Analytics /
Stream
バッチ / Advanced
AnalyticsBlob Storage
コールドデータ収集
Azure Data Factory
バッチ / Advanced
Analytics / AI
Database
Azure SQL DW
可視化 / 分析 App / Bot