notebook

都内でWEB系エンジニアやってます。

2021-01-01から1年間の記事一覧

jqで曜日判定をする

jqで土日を判定するみたいなことができる isoの日付からfromdateでunixタイムスタンプへ変換しそれをgmtimeへ渡すと日時に関する配列が返ってくる その中に曜日の情報も含まれている よくある2020-08-01のような形式のテキストを判定してみる $ echo '{"star…

jqで複数ハッシュのmergeをする

RubyでいうHash.merge的な処理をjqでもやりたいとき 集計結果をいくつかのファイルに出力しておき最後にサマリーとしてJSONにまとめたいときなどに使う 書いていて感じたけどあまりこういう機会はないかもしれない… 01.json { "hoge": 1, "fuga": 2 } 02.jso…

WSLからWindowsへ通知を送る

GitHub CLIを使ってターミナルでGitHub Actionsを操作する - GitHubブログ github.blog GitHubのCLIにworkflow,runが増えた記事を見て 記事の中でnotify-sendを用いてworkflowが終わったらデスクトップ通知するみたいなのを見た そういえばworkflow以外にも…

DataformでAPIからパイプラインを実行する

Dataformで個人プロジェクトのデータ整形を行ってみた そのときにAPIでパイプラインを実行したときのメモ REST API ドキュメントはこちら Use the REST API | Dataform docs.dataform.co まだREST API自体がBetaらしく今の段階ではプロダクション導入とかは…

じぶん Release Notes (ver 0.33.7)

swfz (ver 0.33.7) がリリースされました、更新内容は次のとおりです 技術 やったこと GCP Workflows CloudFunctions CloudLogging Pub/Sub これらを用いてエラーログからSlack通知するみたいなことをした Dataform 個人的にやっているTogglの集計作業をData…

GCPのCloud WorkflowsとCloud SchedulerでTogglの前日読書時間を自動でPixelaに記録する

今回の記事までにいくつかCloud Workflowsの記事を書いた GCPのCloud Workflowsを試す - notebook swfz.hatenablog.com Cloud Workflowsでランタイム引数のデフォルト値を設定する - notebook swfz.hatenablog.com これらで行ったことをもとに今回はテーマを…

CloudLoggingに流れたログをSlack通知する

すでにいろいろと記事も出ているが自分で触って試してみたため残しておく やったことはLogging -> 集約シンク -> Pub/Sub -> Functions -> Slack でWARNING以上のログをSlackに通知する 集約シンク AWSでいうCloudWatchLogsのロググループに対するkinesis da…

Cloud Workflowsでランタイム引数のデフォルト値を設定する

実行時に引数を渡すときにデフォルト値を設定したい というよくあるパターンをWorkflowsで行えるか試してみた 今回は失敗したパターンも書きながら流れを追って書いていく 結論だけ知りたい方は最後の方を見てください ランタイム引数の扱い Workflowsでラン…

GCPのCloud Workflowsを試す

ちょうど気になっていたので使ってみる Workflows ワークフロー | Google Cloud cloud.google.com サーバレスでHTTPベースのAPIサービスを組み合わせてワークフローを定義できる 外部APIも対応しているので色々できることはありそう 目次 こんな感じで試して…

じぶん Release Notes (ver 0.33.6)

swfz (ver 0.33.6) がリリースされました、更新内容は次のとおりです 技術 やったこと GCP CloudFunctions Workflows Sentry とりあえずGatsbyのブログと本ブログに入れてみた イベント 3月は次のイベントに参加した(視聴) Tech x Marketing #エンジニアリン…

dateコマンドで月初、月末、先週の期間を出力する

バッチ処理などの期間指定でよく遭遇するこの手の期間指定 必要になるたび調べていたのでよく使うものをまとめた 今 $ date Wed Mar 17 02:51:47 JST 2021 前日起算の月末 $ date -d "$(date -d "1 day ago 1 month" +"%Y-%m-01") 1 days ago" Wed Mar 31 00…

dummy-jsonを使ってダミーデータを生成する

dummy-jsonというnodeのライブラリを使ってみたのでメモ dummy-json BigQueryなどサンプルのJSONを作ってロードしたいときや、カラムの情報をある程度コントロールしてサンプル作りたいとき または、モック用にAPIレスポンスを適当に生成したいとき Rubyでい…

BigQueryで連続した日付のデータを生成して集計データと突き合わせる

スクリプティングを使ってみたくて題材探してみようと思ったがこのケースならSQL組み合わせるだけで良かった SQL WITH # 歯抜けサンプルデータの用意 sample_data AS( SELECT * FROM UNNEST(ARRAY<STRUCT<d DATE, item STRING, sales INT64>> [ ("2020-10-04", "hoge", 100), ("2020-10-19", "fuga", 5</struct<d>…

じぶん Release Notes (ver 0.33.5)

swfz (ver 0.33.5) がリリースされました、更新内容は次のとおりです 技術 やったこと GCP BigQuery CloudSQL CloudFunctions CloudTasks WSL2 WSL2に移行した Docker含め動かせる状態になった MySQL イベント 2月は次のイベントに参加した(視聴) Developers…

sqlparseを使い特定のSQLを抽出する

クエリログの中から特定のクエリを取り出したいという状況になったことがあったのでその際のメモ 今回はsqlparseというライブラリを使った sqlparse Python製のSQLパース用のライブラリ、パースだけでなくフォーマットなども行える andialbrecht/sqlparse: A…

CloudTasksの再試行設定覚書

公式ドキュメントを読んでもあんまりピンとこなかったので実際に動かしてみて感覚をつかむ 適当な関数を用意してcreate-http-taskでタスクを生成しCloudTasksのログから再実行の間隔を見る 再試行設定 CloudTasksでは指数関数的に再試行間隔が増加していくが…

BigQueryのMERGE文で削除、更新、追加を同時に行う

MERGE文はUPSERT的な操作をしたいときに取り上げられることが多いイメージだったがもう少し込み入った要件でも活用できそうということで試してみた MERGE文についてのドキュメントは下記 データ操作言語の構文 | BigQuery | Google Cloud cloud.google.com …

じぶん Release Notes (ver 0.33.4)

swfz (ver 0.33.4) がリリースされました、更新内容は次のとおりです 技術 やったこと TypeScript CloudFunction BigQuery 開発環境にdeltaをいれた イベント 1月は次のイベントに参加した(視聴) Engineer Career Study #1 - スペシャリストとしてのキャリ…

スプレッド演算子でimmutableにreduceの処理を書く

nodeでreduceを使って集計などを行う場合、スプレッド演算子を使ってimmutableに書けるのでメモとして残しておく 具体例でいうと次のような変数に対してname,dateごとにグループ化してvalueの値を足した計算結果を出したい場合 const rows = [ { name: "foo"…

2020年ブログの振り返り

2020年ブログの振り返り 総PV数 2020年は81444PVだった 2019年はいくつかバズった記事があったが、2020年はなかったのでそういうのを加味すると良い感じかなと思う 月ごとの推移 安定して前年よりか増えている ホットエントリ入りの記事は残念ながらなかった…

2020年の振り返り

全体的な総括のための振り返り 遅れてしまったが書いておかないと次の年末困りそうなので 2019年と同じような形で思い付くままに書いていく 2019年振り返り - notebook 生活 2020年は変化を余儀なくされたことが多かった 今まで週1のリモート勤務だったのが…

じぶん Release Notes (ver 0.33.3)

swfz (ver 0.33.3) がリリースされました、更新内容は次のとおりです 技術 やったこと TypeScript CloudFunction GraphQL CircleCI GCPのCD BigQuery MERGE構文など BigQueryのデータセットなどをTerraformで管理する サンプルリポジトリ terraform-sample/g…