2016年7月4日月曜日

Polybaseを使用して、Blob StorageからSQL DWへCSVファイル形式のデータをロードする方法

Polybaseを使用して、Blob Storageに格納されているCSVファイル形式のデータをSQL DWにロードする手順です。
基本は以下のドキュメントに従って実行しています。
https://azure.microsoft.com/ja-jp/documentation/articles/sql-data-warehouse-load-from-azure-blob-storage-with-polybase/

なお、今回の手順ではファイル名は「simple_benchmark.csv」、データ形式は「TestId, TextNumber」で、ともに整数データとしています。
また、CSVファイルはストレージアカウント「testdatastorage」、コンテナ「testdata」に格納しています。

1.資格情報を作成
CREATE MASTER KEY;

CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential
  WITH
    IDENTITY = 'testdatastorage',
    SECRET = '<アクセスキー>';

2.外部データソースの作成
CREATE EXTERNAL DATA SOURCE AzureExtStorage
  WITH (
    TYPE = HADOOP,
    LOCATION = 'wasbs://testdata@testdatastorage.blob.core.windows.net',
    CREDENTIAL = AzureStorageCredential
  );

3.データ形式の構成
CREATE EXTERNAL FILE FORMAT CSVFileFormat
  WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
      FIELD_TERMINATOR = ','
    )
  );

4.データベースのスキーマを作成
CREATE SCHEMA [tst];

5.外部テーブルを作成
CREATE EXTERNAL TABLE [tst].[SimbleExtTab1] 
  (
    [TestId] [int] NOT NULL,
    [TestNumber] [int] NULL
  )
  WITH (
    LOCATION = '/simple_benchmark.csv',
    DATA_SOURCE = AzureExtStorage,
    FILE_FORMAT = CSVFileFormat
  );

6.データをSQL DWにロード
CREATE TABLE [tst].[SimpleTab1]
  WITH (
    DISTRIBUTION = HASH([TestId])
  )
  AS
    SELECT * FROM [tst].[SimbleExtTab1];

7.列ストア圧縮の最適化
ALTER INDEX ALL ON [tst].[SimpleTab1] REBUILD;

8.統計の最適化
CREATE STATISTICS [stat_tst_SimpleTab1_TestId] ON [tst].[SimpleTab1]([TestId]);
CREATE STATISTICS [stat_tst_SimpleTab1_TestNumber] ON [tst].[SimpleTab1]([TestNumber]);

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。