Azure DataLake Analytics (ADLA)でのU-SQL Tables
ADLAのU-SQLデータベースとは、ADLSのストレージ内に用意されたファイルベースの分散テーブルです。parquetとかのようなものと思っておけば良いようです。
通常はcsvやほかのデータソースから入力して、csvで吐く、という風にしますが、U-SQLに最適化されたU-SQL Tablesの方が以下のメリットがあります。
- 速い : リードライトともかなり速くなります。
- 簡単 : 何と、リードライト時にスキーマを書かないで良いです。また、schema on readで生成できるので、最初にCreateする時も何も定義はいりません。(定義することも可能)
- 永続性 : 当然ですが、バックはファイルなので、永続性があります。ただ、アクセスはデータベースのように専用のSQLコマンドベースが基本です。
- 閲覧性 : 後述する専用のビュアーで、SQLデータベースと同じように、スキーマの確認など管理ができます。
に書いてあるように、非常に簡単に生成、読込などが可能なので、一度ADLSからロードできたものは全てU-SQL Tablesに変換したくなります。
容量は食うので、その辺はコストとの相談で。
@customers =
SELECT * FROM
(VALUES
("Contoso", 123 ),
("Woodgrove", 456 )
) AS D( Customer, Id );
DROP TABLE IF EXISTS MyDB.dbo.Customers;
CREATE TABLE MyDB.dbo.Customers
(
INDEX idx
CLUSTERED(customer ASC)
DISTRIBUTED BY HASH(customer)
) AS SELECT * FROM @customers;
@rs =
SELECT *
FROM MyDB.dbo.Customers;
U-SQL Tablesへ直接アクセスするには?
基本は、上記のCREATE,SELECTなどを使って、読み書きを行います。ただ、保存した後のテーブルのブラウズなどは方法が限られています。
Azure Portal は×
簡単な削除などのオペレーションは、ポータルから出来ると便利と思っているのですが、残念ながら、ファイルのみでTablesの閲覧には対応していません。
実はTablesの実体は以下のような、"database"フォルダ内に格納されていますが、テーブル名で探すことすらできず操作できません。
Azure Cloud Explorer は×
Data Lake Storeのアクセスが可能になっていますが、ファイルのみでTablesの閲覧には対応しておりません。
Azure DataLake Tool for Visual Studio は〇
Develop U-SQL scripts by using Data Lake Tools for Visual Studio
Visual Studio 用のADLA/U-SQL環境をメインで使う人が多いと思いますが、同拡張を入れると、Server ExplorerにADLAおよびU-SQL Tablesのブラウザが追加されます。テーブルの閲覧、簡易統計の表示、スキーマの確認などがスムーズに行えます。
これによりcsvなどと比べても、削除、結果のプレビューなどについても、同等の使い勝手になり、開発がはかどります。
Azure DataLake Tool for Visual Studio Code は〇
Use Azure Data Lake Tools for Visual Studio Code
Visual Studio CodeにもDataLakeツールが早期から統合されています。DataLakeのブラウザの中にはちゃんとU-SQL Tablesが見れます。中々軽快に動くので、ストレスが無いですね。ただ、Visual Studio用のプラグインと、見え方が少し異なるようです。
まとめ
U-SQLをデータ処理の主体として使うにはやはり、VisualStudioやVisualStudio Codeをベースに開発をした方が効率的です。
そのうちブラウザだけで同様な事が出来る統合環境が・・・できないですねorz