LoginSignup
0
1

More than 5 years have passed since last update.

Treasure Data で既存のテーブルと同じスキーマのテーブルを作成する

Last updated at Posted at 2018-07-18

TreasureData にて、例えば巨大なテーブル A からランダムサンプリングしたテーブル B を作成したいとき、あらかじめテーブル A と同じスキーマを持ったテーブル B を作成しておく必要がある。

Web UI から良い感じにやる方法があるのかと思ったけど見当たらなかったので、td コマンドを使ってなんとかした。

#!/bin/sh -eu

FROM_DB='sample_datasets'
FROM_TABLE='nasdaq'

TO_DB='sample_datasets'
TO_TABLE='nasdaq_sample'

SCHEMA=$(td schema:show $FROM_DB $FROM_TABLE | grep -e '^ ' | perl -ple 's/\s+//g' | tr '\n' ' ')

td table:create $TO_DB $TO_TABLE
td schema:set $TO_DB $TO_TABLE $SCHEMA

以下、簡単な解説。

例えば td schema:show

$ td schema:show sample_datasets nasdaq
sample_datasets.nasdaq (
  symbol:string
  open:double
  volume:long
  high:double
  low:double
  close:double
)

このような形式でスキーマ情報を返してくるので、これを整形して

$ td schema:show sample_datasets nasdaq | grep -e '^ ' | perl -ple 's/\s+//g' | tr '\n' ' '
symbol:string open:double volume:long high:double low:double close:double

このような一行の文字列にすることで、 td schema:set に渡すことが出来るようになる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1