U-SQL 入門⑩ ~ 結合 ~

U-SQL では以下の結合が利用可能です。すべての JOIN において行セットの変数を指定することも SELECT 文を記述することもできます。 CROSS JOIN INNER JOIN OUTER JOIN SEMIJOIN ANTISEMIJOIN CROSS JOIN 行セットのデカルト積を返します。 @employees = SE…

U-SQL 入門⑨ ~ 変数の使用 ~

DECLARE を使って変数を宣言することができます。これを使うことによって U-SQL のメンテナンス性が向上します。 また、Azure Data Factory を使って U-SQL を実行する際は、Azure Data Factory で定義したパラメータを U-SQL に渡すことができます。 DECLAR…

U-SQL 入門⑧ ~ 行番号を振る ~

行に番号を振るには ROW_NUMBER ウィンドウ関数を使います。下記にいくつかの例を紹介します。 1. 普通に行番号を振る場合 @employees = SELECT * FROM ( VALUES ("Noah", "Engineering", 100, 10000), ("Sophia", "Engineering", 100, 15000), ("Liam", "En…

U-SQL 入門⑦ ~ U-SQL 内で行セットを作成 ~

以下の様にして行セットを U-SQL 内で生成することができます。ちょっとテストする時などに便利。 @employees = SELECT * FROM ( VALUES (1, "Noah", "Engineering", 100, 10000), (2, "Sophia", "Engineering", 100, 20000), (3, "Liam", "Engineering", 10…

U-SQL 入門⑥ ~ 集約関数 ~

U-SQL にはビルトインの集約関数が提供されています。これらの集約関数は SELECT 文の中で使用できます。 集約関数の一覧 ANY_VALUE グループの中から任意の 1 つの値を取得する ARRAY_AGG グループごとに SQL.ARRAY 値を生成する AVG 平均 COUNT 個数のカウ…

U-SQL 入門⑤ ~ データ型 ~

U-SQL のデータ型は通常の SQL とは異なり、C# のデータ型を使用します。間違えないように気を付けたいところ。 C# のデータ型は以下の URL を参照。 型 (C# リファレンス) | Microsoft Docs 下記のようにデータ型指定の隣に ? を付けると null 値を許容する…

U-SQL 入門④ ~ FileSets ~

FileSets を使って複数のファイルを EXTRACT 文で読み込むことができます。 基本 以下のように 5 ファイルがある場合、 /input/2018-01-01.log /input/2018-02-01.log /input/2018-03-01.log /input/2018-04-01.log /input/2018-05-01.log以下の EXTRACT 文…

U-SQL 入門③ ~ ファイルのアウトプット ~

U-SQL でのファイルのアウトプットは OUTPUT 文のTO 句 で PATH を指定して、 USING 句で Outputter を指定します。 OUTPUT @rows TO “/data.csv” USING Outputters.Csv(); Outputtersで書き込むファイルのフォーマットを指定します。 Outputters.Text(): フ…

U-SQL 入門② ~ ファイルのインプット ~

U-SQL でのファイルのインプットは FROM 句で PATH を指定します。 ※ストレージは ADLA のデータソースとして登録しておく必要があります。ファイルインプットの例 // デフォルトの ADLS の PATH を指定する場合 @rows = EXTRACT name string, id int FROM “…

U-SQL 入門① ~ U-SQL の基本形 ~

Azure Data Lake Analytics の U-SQL というクエリ言語についてメモ用に基本的な事をまとめていきます。 Azure Data Lake そのものについてや構築方法等はこちらのブログ (Data Platform Tech Sales Team Blog | Azure Data Lake)を見るとわかりやすいと思い…

FlumeでKafka for HDInsightとデータをやり取りしてみる

Microsoft AzureのHDInsightでKafkaが使えるようになったので、これをデプロイしてFlumeでデータをやり取りしてみます。 HDInsightのKafkaはこのへんのマイクロソフトのブログ記事を見てデプロイしておきます。 Kafka for HDInsight概要 blogs.msdn.microsof…

Elasticsearch for Apache Hadoop の Multi-index Writes を試す

Elasticsearch for Apache Hadoop 1.3 M3から追加されたMulti-index Writesという機能をHiveで試してみた。 たとえば定期的にMapReduceを実行して、1日毎にindexまたはtypeを分けたいという要件があるような場合など、データの内容によって、動的に別のindex…