TreasureDataのログを削除する
デジタルマーケティングのデータサイエンティストであればTreasureDataを利用されている方も多いのではないでしょうか。通常のDB感覚で大量のログを取り込み、分析できて便利ですよね。
と思いきや、あれ、取り込んだデータの削除ができない・・・
間違ってファイルをインポートしようものなら、クエリで条件をつけて抽出するか、テーブルごと作り直すかしかない、そう思っていました。
確かにクエリで通常あるdelete文がないんです。しかし、tdコマンドを利用することで削除可能です!
tdコマンドについてはこちらをご覧ください。
td-agentの導入簡易まとめ - tweeeetyのぶろぐ的めも
partial_deleteを使う
partial_deleteを使って、timeの条件に該当するログを削除できます。
$ td table:partial_delete example_db table1 --from '2014-01-01 00:00:00 JST' --to '2015-01-01 00:00:00 JST'
上記のような感じですね。消したいDBとテーブル、timeの条件を指定すればおっけーです。timeはunix timeでもdatetime型でも問題ないのですが、時間指定が1時間単位までしかできないのでその点注意しましょう!
それにしてもデータ消せないと思って3億レコードのテーブル作り直すという暴挙はなんだったのだろうか・・・