BigQuery×Lookerでクエリデータ量を強制的に抑えるMax Billing Gigabytesを試してみる #BigQuery #Looker
はじめに 中央値を使って、データをクリーニングすることがたまにある。例えば、複数人がそれぞれで同じデータを手入力した場合などである。 しかもBigueryでは、他のSQLにあるMEDIANが用意されていない。 データ概要 複数人がそれぞれで同じデータを手入力したサンプルをtable1とする。 同じ事象に対して人がそれぞれ入力したとしても、本来はみな同じデータになるはずだが、手入力していると、どうしても間違いが起こる。この例では、2019-12-2のCの入力が、165,000-と入力すべきところを間違って1,650,000-と入力したように思える。 このデータをどうにかして、キレイにしたい。 table1 date person sales
概要 バッチで実行するクエリを変更した後に、前後のテーブルで1行全体を比較し、変化があった行を調べたい。 複数列をまとめてJOINのキーにしてしまいたい。 ARRAY型、STRUCT型でも手軽にJOINしたい。 ということが最近あった。愚直やると、 対象のすべての列を書き出す またNULL->非NULL(もしくはその逆)の変化を検知するためには、NULLを含む値の比較はNULLで返ってくるため、NULLIFなどで回避する といった対応が必要です。 こういったとき、TO_JSON_STRINGが使えます。 今回のキーワード TO_JSON_STRING クエリ サブクエリrace1_unnestとrace2_unnestを比較対象とします。 race2_unnest に存在しない、race1_unnestの行を、LEFT JOINで出力します。 race2_unnestは、race1_unn
エンジニア|事業サービス会社に所属|得意領域はマーケティングオートメーション、WEB接客サービス、データ基盤、BigQuery 個人メディア→ https://tokukichi.com/
メモ: CURRENT_DATE - interval (DAYOFWEEK(CURRENT_DATE) - 1) day AS THIS_SUNDAY 日曜日始まりとする。 今日の曜日インデックス(DAYOFWEEK(CURRENT_DATE))から日曜日の曜日インデックスを引くと、今日が日曜日から何日目かが分かる。 CURRENT_DATE + interval (7 - DAYOFWEEK(CURRENT_DATE)) day AS THIS_SATURDAY 土曜日の曜日インデックスから今日の曜日インデックスを引くと、土曜日は今日から何日目かが分かる。 もしかしたらそれ用の関数とか用意されてるのだろうか
メルカリのバックエンドを支える SRE(Site Reliability Engineering) チームに最近加わりました @syu_cream です。 本記事では KPI に関わる数値を計算してレポートを生成する集計システムの刷新に取り組んでいる話を紹介します。 現在は刷新の途中であり、集計項目ベースでいうと 1/3 ほどの実装が済み、現行システムと刷新後のシステムの一部を並行稼動させている状態です。 背景 メルカリではアプリケーションのログファイルやデータベースから、 DAU(Daily Active Users) などの KPI に関する様々な数値を集計するためのシステムを稼働させています。 この集計システムは毎日 Slack やメールにて KPI のサマリーレポートを送信し、全社員が数値を閲覧し、日々プロダクトの傾向を意識することを可能にしています。 集計システムの動作イメージは
BigQuery のコンソール画面からデータをダウンロードする際、大きすぎるデータは BigQuery の制約により直接ダウンロードすることができません。ダウンロードする場合は Google Cloud Storage を利用できます。 クエリ結果を別テーブルに保存する まず、検索した結果を別テーブルに保存しておきます。 結果画面から Save as Table を押します。 ポップアップが出てくるので、任意のデータセット(この場合はanalysis)に保存します。権限がない場合は管理者に申請する必要があります。権限がある限りプロジェクトやデータセットをまたいで保存することができます。 Job History をみると、テーブルがコピーされていることがわかります。(アイコンが緑) エラーになっている場合もここに表示されます。(アイコンが赤) テーブルを Cloud Storage にエクス
Cloud Datastudioで年代別に処理をする際、下記のように年齢を5刻みのにして出しているのがあって、もっと短くしたくなったのでやってみた。 SELECT case when age>= 10 and age < 15 then '10-14' when age>= 15 and age < 20 then '15-19' when age>= 20 and age <25 then '20-24' when age>= 25 and age <30 then '25-29' when age>= 30 and age <35 then '30-34' when age>= 35 and age <40 then '35-39' when age>= 40 and age <45 then '40-44' when age>= 45 and age <50 then '45-49'
勉強会で発表したので内容を適当にまとめてブログ記事にしておく いつの間にかリファレンスが日本語化されているので、全部一読したい人はそちらを読んだほうがよいかも SQL Reference | BigQuery Documentation | Google Cloud Platform ちなみに日本語版のリファレンスだと最近の変更点が載っていない場合があるので、最新の情報を知りたい場合は英語版を見た方がよいです(URLに?hl=enを足してアクセスすればよい(?)) 以下目次 BigQueryで使える2つのSQL Standard SQLを使うべき? 便利な機能や変更点 テーブル名の参照 COUNT(DISTINCT value) SELECT テーブル名.* SELECT * EXCEPT (カラム名) 複数のREPEATED型のカラムを持つテーブルのSELECT * SELECT
はじめに これは2017/06/14のGoogle Cloud Community fes @ Google Cloud Next'17 Tokyoでの#bq_sushiにて開催されましたセッション『Jordan本人だけどなんか質問ある?』の内容となります。 端折っている部分や記憶が若干曖昧な部分、ごにょごにょもありますが、ご了承ください。 お題1:スロットとは何か?もう少し教えてください!あと、事前にTierを知る方法はありますか? Jordanおとーさん: その質問は良く聞かれる。知りたい理由も知っている。 現在、1スロットに割り当てられるメモリなど処理能力はわかっているのだが、あえて答えていない。なぜ答えないのかは、その処理能力が日々向上しているからなんだ。だから、知っておいてほしいのは1スロットというのが並列処理されている数だと認識してほしい。 あとTierの制限については遠くない
BigQuery自体には類似文字列検索の機能はないので、文字n-gramのコサイン類似度を求めるSQLを書いて似ている文字列の検索をします ちなみに単純にある文字列が別の文字列に含まれているかどうかをみたいならWHEREにカラム名`LIKE '%探したい文字列%'のような条件を書いたりStandard SQLならSTRPOS(カラム名, '探したい文字列') != 0、Legacy SQLならカラム名 CONTAINS '探したい文字列'のように書けばよいはずです 文字n-gramのコサイン類似度による類似文字列検索 方針としては文字列同士を、文字n-gramのベクトルとみなしてコサイン類似度を計算します 文字n-gram 文字n-gramは連続したn文字のことで、これをカウントしたものをベクトルの要素とみなします 例えば文字bigram(2文字のn-gram)のベクトルを「BigQuer
32.Google BigQueryでAnalyticsとAdSenseのデータを分析する(Google I/O 2013) Ryo Yamasaki(@vierjp)です。 「BigQueryでGoogle AnalyticsとGoogle AdSenseのデータを分析する」というセッションについてのメモです。 I/Oではこの時間帯に別のセッションを聞いていたのでこの件について全く認識しておらず、 Google I/O報告会で初めて知ったので早速動画をチェックしてみました。 ・Google Analytics and AdSense Data Analysis in BigQuery (セッションページ) ・動画 ◯ BigQueryでAdsenseのデータを利用する そのままではデータセット一覧にAdsenseのデータは表示されていませんが、 現時点で既に利用可能になっています。 ・使
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く