HOW TO TD(User Engagement)techblogアーカイブTreasure Data User Engagement
実データで覚える Treasure Client コマンドラインリファンス 〜3.Data Processing〜
この記事は最終更新から3年以上が経過しています。最新情報は担当のカスタマーサクセスにご確認ください。
トレジャーデータはデータ収集、保存、分析のためのエンドツーエンドでサポートされたクラウドサービスです。本シリーズではTreasure Client ツールのコマンドラインリファレンスを以下の5つのレイヤーに分解し,各々について解説していくものとします。
No. | レイヤー | コマンド |
---|---|---|
1. | Data Import | one-time import bulk import |
2. | Data Management | db table |
3. | Data Processing(本記事) | schema query job |
4. | Data Scheduling | sched result |
5. | Other | help status server sample |
本日は 3. Data Processing に関するコマンドを紹介します。
1.schema コマンド
schema コマンドはインポートしたテーブルの各カラムに正確なスキーマを割り振ることでデータの質とパフォーマンスを上げるコマンドです。
$ td help schema Additional commands, type “td help COMMAND” for more details: schema:show <db> <table> # Show schema of a table schema:set <db> <table> [columns…] # Set new schema on a table schema:add <db> <table> <columns…> # Add new columns to a table schema:remove <db> <table> <columns…> # Remove columns from a table
スキーマを設定すると以下の様に td tables $table_name コマンドでテーブル内の各カラムに型が割り振られていることがわかります。スキーマを設定することでクエリの記述が異なります。スキーマを設定しない場合はカラムへのアクセスが v[‘$column_name’] と記述する必要がありましたが,設定後は $column_name の記述が可能になります。
それではスキーマを設定してみます。
$ td schema:set carsensor brand_master country_name:string country_code:string name:string code:string $ td schema:set carsensor body_master name:string code:string $ td schema:set carsensor catalog body_code:string body_name:string code:string desc:string grade:string height:int length:int model:string name:string period:string person:int price:int series:string width:int $ td schema:set carsensor color_master name:string code:string $ td schema:set carsensor country_master name:string code:string $ td schema:set carsensor large_area_master name:string code:int $ td schema:set carsensor pref_master name:string code:int large_area_name:string large_area_code:int $ td schema:set carsensor usedcar carsensor usedcar body_name:string code:string color:string desc:string engine:string grade:string id:string inspection:string main_caption:string main_photo_l:string main_photo_s:string maintenance:string maintenance_comment:string maintenance_fee:string model:string name:string odd:string odd_km:int price:string recycle:string shop_datum:string shop_lat:float shop_lng:float shop_name:string shop_pref_code:int shop_pref_name:string url_mobile:string url_pc:string url_qr:string warranty:string warranty_comment:string warranty_distance:string warranty_fee:string warranty_length:string warranty_length_kigen:string warranty_length_kikan:string year:int $ td schema:set carsensor usedcar_cube_without_catalog id:string name:string model:string body_name:string color:string engine:string grade:string inspection:string recycle:string year:int country_name:string used_price:string large_area_name:string shop_pref_name:string shop_lat:double shop_lng:double shop_name:string shop_pref_code:int maintenance:string maintenance_fee:string odd:string odd_numerics:double odd_unit:string odd_km:double warranty:string warranty_distance:string warranty_fee:string warranty_length_kigen:string warranty_length_kikan:string warranty_length_kikan_m:string main_photo_l:string desc:string $ td schema:set carsensor usedcar_cube_with_catalog id:string name:string model:string body_name:string color:string engine:string grade:string grade_seq:long inspection:string recycle:string year_ym:int start_ym:int end_ym:int country_name:string series:string person:int height:int length:int width:int used_price:string new_price:int large_area_name:string shop_pref_name:string shop_lat:double shop_lng:double shop_name:string shop_pref_code:int maintenance:string maintenance_fee:string odd:string odd_numerics:double odd_unit:string odd_km:double warranty:string warranty_distance:string warranty_fee:string warranty_length_kigen:string warranty_length_kikan:string warranty_length_kikan_m:string main_photo_l:string desc:string
$ td schema:show carsensor brand_master
で設定されているスキーマを確認できます。
2. query コマンド
query コマンドは記述したクエリを実行するコマンドです。
$ td help query usage: $ td query [sql] example: $ td query -d example_db -w -r rset1 “select count(*) from table1” $ td query -d example_db -w -r rset1 -q query.txt description: Issue a query options: -d, –database DB_NAME use the database (required) -w, –wait wait for finishing the job -G, –vertical use vertical table to show results -o, –output PATH write result to the file -f, –format FORMAT format of the result to write to the file (tsv, csv, json or msgpack) -r, –result RESULT_URL write result to the URL (see also result:create subcommand) -u, –user NAME set user name for the result URL -p, –password ask password for the result URL -P, –priority PRIORITY set priority -R, –retry COUNT automatic retrying count -q, –query PATH use file instead of inline query -T, –type TYPE set query type (hive or pig) –sampling DENOMINATOR enable random sampling to reduce records 1/DENOMINATOR -x, –exclude do not automatically retrieve the job result
頻繁に使用するオプションは
- -w: 結果が返って来るまで待機
- -o: 保存先を指定
- -f: 出力フォーマットを指定
- -q: クエリを記述したファイル名を指定
以下の2パターンを覚えていれば十分でしょう。
$ td query -w -d carsensor -q “scatter.sql” -f csv -o “scatter.csv” # -o で指定したファイルに scatter.sql クエリの実行 $ td query -w -d carsensor -q “scatter.sql” “SELECT v FROM usedcar LIMIT 10” # コンソール出力
3. job コマンド
job コマンドは query で実行中ジョブや終了したジョブを参照するコマンドです。このコマンドでジョブの
- 進捗
- 成功 / 失敗
- 結果の取得
を確認することができます。終了済のジョブを指定してその結果を取得するには,
$ td jobs +———+———+—————————+—————+———-+——–+——–+——————+————————–+ | JobID | Status | Start | Elapsed | Priority | Result | Type | Database | Query | +———+———+—————————+—————+———-+——–+——–+——————+————————–+ | 7522693 | success | 2014-02-04 01:37:47 +0900 | 28sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM joined_… | | 7522617 | success | 2014-02-04 01:33:46 +0900 | 17sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM joined_… | | 7522465 | success | 2014-02-04 01:24:22 +0900 | 31sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM joined_… | | 7521447 | success | 2014-02-04 00:47:43 +0900 | 31sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM joined_… | | 7521415 | success | 2014-02-04 00:42:39 +0900 | 38sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM transac… | | 7521403 | success | 2014-02-04 00:41:05 +0900 | 48sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM transac… | | 7521380 | success | 2014-02-04 00:39:15 +0900 | 52sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM transac… | | 7521264 | success | 2014-02-04 00:29:05 +0900 | 45sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM transac… | | 7521256 | success | 2014-02-04 00:26:41 +0900 | 44sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM transac… | | 7521235 | success | 2014-02-04 00:23:05 +0900 | 46sec | NORMAL | | hive | pos_toshiba_tech | SELECT * FROM transac… | | 7521004 | error | 2014-02-04 00:07:01 +0900 | 15sec | NORMAL | | hive | pos_toshiba_tech | SELECT v[ plu_meishou… | +———+———+—————————+—————+———-+——–+——–+——————+————————–+ 20 rows in set $ td job:show 7521235 -f csv -o output.csv