Pocket

!!!!!!!

[Treasure Data][Redash]Digdagとembulkを使いこなせば驚異的な分析基盤が出来上がる!!

前回分析基盤のお話をしましたが、Digdagでembulkを使ってS3にあるログをBigqueryに飛ばす場合、
過去ログは以下のように、日付ごとに設定ファイルを作り、$ digdag runをしなければなりません。

さすがに3ヶ月前とかは手動でミスなどありそうで。。。

つらああああああああああああああああああああい!!

というわけでシェルスクリプトでv0.1作ってみましたぜ!


■digdag-run.sh

https://gist.github.com/RVIRUS0817/57ec1588ca7c253286a6392469033807

まず3行目はスクリプトで実行時にエラーが出るとそれ以下は処理しないようにしてます。(さすがにpushとかされたら困る…)5行目~20行目では日付を定義する場合は引数を使ってコマンドラインから渡してあげるといいとセンパイに指摘されたのでいい感じになりました。(指定の仕方が間違っているとエラーも出るように!!)基本今日から取るlogに関しては手動で作成して25行目のrunからのpushをすればスケジューリングされるので、ややこしくないですが!36行目からは過去ログを引数に渡す処理を書かないとあかんのでfor文でぶん回します。39行目では変数からのsedで正規表現をしてます。41行目からは上記に書いてあるdigdagファイルをぶち込んで、さらに日付ごとにファイル化してます。51行目runして日付ファイルを抹消しています。52行目.digdag/status配下を消していますが、理由としては何回もrunするとエラーが出るのでキャッシュを消しているためです。


■run digdag-run.sh

とりあえず2018/05/01~2018/05/08までをぶち込んでみます。

BigQueryに入ってる!!?


■まとめ

v0.2では今日以降と過去分は関数化して別々にして、
getopts引数を使ってオプション対応からの日付範囲指定が
文字列判定になっているので日付として範囲指定できるように目指します!
むしろCircleCIで早期発見したほうがいいんじゃないの?
もっといい方法あったら教えてくだせえええ!

早速!!

参考
https://shellscript.sunone.me/parameter.html

Pocket

カテゴリー: digdagembulk

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください