superi

主にキャリアと金融を嗜むメディア

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億レコードのテーブル作り直すという暴挙はなんだったのだろうか・・・

 

参考

TreasureData上の過去データを削除する - Qiita

Deletion | Treasure Data