case-kの備忘録

日々の備忘録です。最近はGCPやデータ分析系のことを呟きます

BigQuery

BigQueryのウィンドウ処理

BigQueryウィンドウ処理の備忘録です。 Dataset RANK() LAG/LEAD ROW_NUMBER() Dataset console.cloud.google.com RANK() ベンダーごとの旅客数が多いレコード順にランクを付与します。 SELECT vendor_id, passenger_count, RANK() OVER (PARTITION BY vendo…

Python Client GBQ & GCS

Code library Read From GBQ To Local Upload From Local To GCS Read From GCS Load From GCS To GBQ Code # python_client_gbq_gcs.py github.com library !gcloud auth application-default login !pip install --upgrade google-cloud-bigquery !pip ins…

Dataflow Google BigQuery I/O connector:Python

Dataflowを使ってBigQueryからBigQueryに書き込む処理とCloud StorageからBigQueryに書き込む処理をします。 Code options GBQ to GBQ GCS to GBQ beam.apache.org Code github.com options # -*- coding: utf-8 -*- import apache_beam as beam from apache…

BigQueryマスタ更新のベストプラクティスと見解

こちらの記事でベストプラクティスは以下と紹介されており、実運用を考慮した際、現実的には「Data Loadingを利用して追加」する方法が良いようです。 この方法は1テーブルにレコードを追加し、最新のTIME STAMPを参照するVIEWテーブルを作り参照させる方法…

Cloud Functionsで検知したファイルをBigQueryに書き込む

Cloud FunctionsでバケットにアップしたファイルをBigQueryに書き込む処理をします。 code Cloud Functionsとは 制限事項 Cloud Functionsを試す 事前準備 動作確認 code github.com Cloud Functionsとは イベントを検知し処理を実行するトリガーの役割があ…

Jupyter NotebookでBigQueryを使う方法

JupyterからBigQueryを使うことがよくあるので備忘録として残しておきます。 PythonクライアントライブラリをインストールすることでJupyterから実行できます。 # auth gcloud auth application-default login # install python client pip install --upgrad…

BigQueryのStandard SQLで四分位計算

GBQのStandard SQLでの四分位計算方法を備忘録として残しておきます。 これまで中央値などの計算はGBQのレガシーSQLを使っていたのですが、制限等何かと不便でしたので調べてみました。 SELECT day , min, percentiles[offset(25)] AS per_25, percentiles[o…

BQコマンド備忘録

備忘録です。BigQueryの集計結果をサーバで扱いたい場合、以下の方法が考えられます。gsutilだと一度GCSにデータを保存する必要があるので手っ取り早く手元にデータを落としたい場合、BQコマンドは便利です。データサイズが大きい場合や取得に時間がかかるの…

分析基盤をPostgreSQLからBigQueryに移行させた時の知見

PostgreSQLベースのBIツールの参照DBをBigQueryに移行したことで、 パフォーマンスが大きく改善(30分以上 -> 10秒)したので、その時の知見をメモとして残しておきたいと思います。 経緯 BigQueryの選定理由 1. 現行がRDBベース 2. 集計結果のデータサイズが…

BigQueryでカンマ区切りのデータの分割方法

BIgQueryでカンマ区切りのデータを分割する方法をご紹介します。データはここに置いておきます。 github.com サンプルの中身はカンマ区切りのデータとなっています。 SQLを実行して、以下のようにカンマ区切りのデータ項目を分割することが本記事の目的です…

BigQueryでサイズの大きいデータをGCSに出力する方法

データ分析する場合BigQueryで集計し、集計結果をGCSに出力、Jupyterで分析することが多いかと思います。 集計結果が大きいとそのままCloud Storageに出力することはできません。集計結果をBigQueryのテーブルに出力し、Cloud Storageへエクスポートを選ぶと…

BigQueryで標準時(UTC・EST)をJSTに変換してみた

時系列データでタイムスタンプがJSTでないことはまあまああるかと思います。BigQueryでJSTに変換する方法を記事にしました。 UTC - > JSTとEST -> JST変換をします。データは以下の形式ならそのままクエリ実行できると思います。 「2018-05-12 21:02:20」 Bi…

BigQueryにタブ区切りのTSVファイル[テキスト]を全件ロードする方法

ただの備忘録です。業務でタブ区切りの8万のTSVファイル(テキスト)をBigQueryに全件ロードする方法を探してた際のtipsです。ログデータを扱う場合、タブ区切りになっていることがあるかと思います。bqコマンド使ったロード方法やサポートされているデータ形…

【GCP入門】Google BigQuery データセット作成からデータ抽出までハンズオン形式で行います

今回はGCPが提供するGoogle BIgQueryに関する記事を書きます。データ読み込み・出力方法やクエリ検索まで備忘録も兼ねて記事を書きます。 この記事の目的 BigQueryとは BigQueryのメリット・デメリット メリット デメリット クエリ備忘録 集計関数 条件付き…