# コマンドラインから Treasure Data へのクエリとデータインポート

Treasure CLI (「コマンドラインインターフェース」または「Toolbelt」) を使用すると、データベースとテーブルの作成、テーブルへのデータのインポートまたはエクスポート、テーブルスキーマの設定と変更、クエリの発行、ジョブステータスの監視、ジョブ結果の表示とダウンロード、スケジュールクエリの作成など、さまざまな操作を実行できます。

* [サンプルデータセットのクエリ](/ja/tools/cli-and-sdks/querying-and-importing-data-to-treasure-data-from-the-command-line#query-the-sample-dataset)
* [バッチのドメインキーによるべき等クエリの発行](/ja/tools/cli-and-sdks/querying-and-importing-data-to-treasure-data-from-the-command-line#issue-idempotent-queries-by-domain-key-for-your-batch)
* [テーブルへのデータインポート](/ja/tools/cli-and-sdks/querying-and-importing-data-to-treasure-data-from-the-command-line#import-data-into-a-table)


## サンプルデータセットのクエリ

Treasure Data には、デフォルトで sample_datasets という名前のデータベースに www_access という名前のテーブルがあります。

以下のクエリを実行して、HTTP ステータスコードの分布を計算します:


```bash
$ td query -w -d sample_datasets  "SELECT code, COUNT(1) AS cnt FROM www_access GROUP BY code"
```

### バッチのドメインキーによるべき等クエリの発行

td コマンド v0.14 以降、`td query` コマンドは `domain key` をサポートしています。`domain key` により、クライアントはクエリの送信をべき等にすることができます。

クエリを実行できます。例:


```bash
$ td query -d sample_datasets --domain-key domainkey-test -T presto "select * from www_access"
```


```
Job 92034375 is queued.
Use 'td job:show 92034375' to show the status.
```

API の問題によりコマンドがジョブ ID で応答しなかった場合、同じドメインキーで同じクエリを再度安全に発行できます。


```bash
$ td query -d sample_datasets --domain-key domainkey-test -T presto "select * from www_access"
```


```bash
Error: Query failed: ["Domain key has already been taken"]: conflicts_with
job:92034375
```

## テーブルへのデータインポート

アプリケーションログ、ミドルウェアログ、その他のソースから実際のデータをクラウドにインポートします。

この例では、TD Toolbelt を使用して JSON 形式のサンプル Apache ログを生成し、「own_database」データベースの新しいテーブルにインポートする方法を示します。

1. サンプルデータを追加します。



```bash
$ td sample:apache sample_apache.json`
```

1. `own_database` を作成します。



```bash
$ td database:create own_database
```

1. サンプルデータを own_database にインポートします:



```bash
$ td table:import own_database sample_tbl --auto-create-table -f json sample_apache.json
```