# Dynalyst Export Integration

[Dynalyst インポート連携の詳細を確認する](/ja/int/dynalyst-import-integration)。

Dynalyst に直接エクスポートできます。Dynalyst はストレージとして AWS S3 を使用しており、エクスポートプロセスは AWS S3 へのジョブ結果のエクスポートと同様です。

![](/assets/image-20191015-191502.50391feda1620bde1122b9f15182b12136643532d2a42746af434ef9223d786c.f2f90747.png)

## 制限事項

S3 への結果出力におけるクエリ結果の上限は 100GB です。クエリ結果が上限を超えると、ログに次のように表示されます:

The number of chunk for multipart upload is exceeded.

クエリを使用してデータを分割するか、td table: export コマンドを使用してください。

## Treasure コンソール を使用した接続の作成

### 認証設定の完了

1. [Dynalyst インポートおよびエクスポート連携](/ja/int)で以下を確認し、完了してください
  - 前提条件
  - 新しい接続の作成
2. Dynalyst 認証を検索します。
3. **New Source** を選択します。


### エクスポート結果の定義

クエリを作成または再利用します。エクスポートクエリは、Dynalyst にエクスポートされるデータセットを定義します。ここでは次のオプションがあります:

- Treasure コンソール を使用したエクスポートクエリの定義
- TD Toolbelt を使用したエクスポートクエリの定義


場合によっては、クエリで列マッピングを定義する必要があります。

### Treasure コンソール を使用したエクスポートクエリの定義

1. Treasure コンソール を開きます。
2. Data Workbench > Queries に移動します。
3. データのエクスポートに使用する予定のクエリにアクセスします
4. **Output Results** を選択します。
Choose Saved Connection ダイアログが開きます。
5. 検索ボックスに接続名を入力してフィルタリングし、接続を選択します。
6. パラメータを指定します。


### TD Toolbelt を使用したエクスポートクエリの定義

TD Toolbelt を使用してエクスポートクエリを定義することはオプションです。エクスポートクエリは、Dynalyst にエクスポートされるデータセットを定義します。

#### 考慮事項:

- アクセスキーとシークレットキーは [URL エンコード](http://en.wikipedia.org/wiki/Percent-encoding)する必要があります。
- セキュリティ上の理由から、ストレージの書き込みアクセス権限を管理するために [AWS IAM](http://aws.amazon.com/iam/) を使用することをお勧めします。
- 結果を圧縮するには、—result URL で *compression* オプション (*gz*) を指定できます。


1. TD Toolbelt がインストールされ、設定されているコンピュータでターミナルウィンドウを開きます。
2. TD Toolbelt query コマンドを使用して SQL クエリを定義します。例えば、クエリ結果を圧縮する場合:



```bash
td query \
--result 'dynalyst://accesskey:secretkey@/bucketname/path/to/file.csv.gz?compression=gz' \
-w -d testdb \
"SELECT code, COUNT(1) AS cnt FROM www_access GROUP BY code"
```

ジョブが完了すると、結果は指定された名前とパスで S3 バケットに書き込まれます。

#### 非圧縮データの例

compression パラメータがない場合、ジョブは非圧縮データを生成します。例えば:


```bash
$ td query \
  --result 'dynalyst://accesskey:secretkey@/bucketname/path/to/file.csv' \
  -w -d testdb \
  "SELECT code, COUNT(1) AS cnt FROM www_access GROUP BY code"
```

#### AWS S3 サーバー側でのアップロードデータの暗号化

[AWS S3 サーバー側暗号化](http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html)を使用してアップロードデータを暗号化できます。暗号化キーを準備する必要はありません。データは 256 ビット Advanced Encryption Standard (AES-256) を使用してサーバー側で暗号化されます。

バケットに保存されるすべてのオブジェクトにサーバー側暗号化が必要な場合は、サーバー側暗号化バケットポリシーを使用してください。サーバー側暗号化が有効になっている場合、**use_sse** オプションを有効にする必要はありません。ただし、暗号化情報のない HTTP リクエストを拒否するバケットポリシーがある場合、ジョブ結果が失敗する可能性があります。


```bash
td query \
--result 'dynalyst://accesskey:secretkey@/bucketname/path/to/file.csv?use_sse=true&sse_algorithm=AES256' \
-w -d testdb \
"SELECT code, COUNT(1) AS cnt FROM www_access GROUP BY code"
```

#### 最終ファイル形式のカスタマイズ

デフォルトの結果出力形式は [CSV RFC 4180](http://www.ietf.org/rfc/rfc4180.txt) です。TSV 形式での出力もサポートされています。CSV および TSV 形式の両方について、次の表は、出力先に書き込まれるファイルの最終形式をカスタマイズするために使用できるオプションを示しています:

| **名前** | **説明** | **制限** | **CSV デフォルト** | **TSV デフォルト** |
|  --- | --- | --- | --- | --- |
| format | ファイル形式を指定するメイン設定 |  | csv | csv (TSV 形式を選択するには 'tsv' を使用) |
| delimiter | 区切り文字を指定するために使用 |  | , (カンマ) | \t (タブ) |
| quote | 引用符文字を指定するために使用 | TSV 形式では使用不可 | " (二重引用符) | (文字なし) |
| escape | 他の特殊文字をエスケープするために使用される文字を指定 | TSV 形式では使用不可 | " (二重引用符) | (文字なし) |
| null | 'null' 値の表示方法を指定するために使用 |  | (空文字列) | \N (バックスラッシュ大文字 n) |
| newline | EOL (End-Of-Line) の表現を指定するために使用 |  | \r\n (CRLF) | \r\n (CRLF) |
| header | 列ヘッダーを非表示にするために使用可能 |  | 列ヘッダーが出力されます。非表示にするには 'false' を使用 | 列ヘッダーが出力されます。非表示にするには 'false' を使用 |


次の例は、カスタマイズが要求されていない場合の CSV 形式のデフォルトサンプル出力を示しています:


```
code,cnt
"200",4981
"302",
"404",17
"500",2
```

`format=tsv、delimiter="、および null=NULL` オプションを指定した場合:


```bash
td query \
--result 'dynalyst://accesskey:secretkey@/bucket_name/path/to/file.tsv?format=tsv&delimiter=%22&null=empty' \
-w -d testdb \
  "SELECT code, COUNT(1) AS cnt FROM www_access GROUP BY code"
```

出力は次のように変わります:


```
"code" "cnt"
"200" 4981
"302" NULL
"404" 17
"500" 2
```