scalebaseのbigqueryを動かしてみた
これは何?
今やっているCS Opsとして実施した仕事の備忘録
背景
今CS Opsとして関わっている企業の請求業務にscalebaseというサービスを利用している
salesforceとscalebaseの請求金額が一致しているかどうかを全件目視で確認している
一致しているものは問題がないので、そのまま請求フローに乗る
一致していないものが一定存在している
そこで、その月に請求を行う企業の中で、一致している問題がないものと一致していない確認が必要なもののステータスがわかる一眼してわかる状態にすることが今回の仕事のゴール
やったこと
本来やりたいのは請求する企業の一致状態を確認するだけなのだが、フローを構築する前に全てのデータの整合性の確認を行うために、対象を全件として、salesforceの金額とscalebaseの金額が一致しているかどうかの確認が行えるものをspreadsheet上で作成した
具体的には
salesforceで特定期間の案件を抽出するレポートを作成
作成したレポートをdata connectorでspreadsheetに出力
spreadsheet上で、企業ごとにまとめて金額を表示
scalebaseがbigquery経由でデータを提供してくれるサービスを提供してくれているので、bigqueryのデータを抽出し、企業ごとにまとめて金額を突合
それぞれまとめたものの金額を突合し、金額が一致しているかどうか?についてのステータスを表示
金額が一致していないものだけを別のシートにまとめる
苦労したポイント
scalebaseというサービスを初めての利用したこと
どのレコードが現在有効なレコードなのか?
どのステータスを見るといいのか?
bigqueryも初めての利用だったこと
bigquery特有のお作法を知らなかったので、SQLを触ったことがあっても特徴的な記述に戸惑った
備忘録
契約テーブルにあるstatusは契約idに対してのステータスを表している
契約の中に複数のPLAN/ADD_ON/DISCOUNTなどが存在し、それらが現在有効化どうかを判定するのはcontract_item_activation_statusというカラム
scalebaseが提供しているテーブルの定義には記載があるのだが、契約アイテムというのがどういう意味なのか理解するまでに何度もやり直しをすることになり、大変だた
あとは、成果物をアウトプットすることを優先したので、queryを以前他の方が作ってくれたものを流用したが、ディスカウントアイテムの名前を取得するのがうまくできなかったので、この辺をうまく取得できるようになるとより、scalebaseと他のサービスとの連携状態が正常か確認するのが捗りそう