case-kの備忘録

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

GCP

Google Cloud 認定資格 Professional Data Engineerに合格できたので、勉強方法など書いてみました

GCP

Google Cloud認定試験のProfessional Data Engineerに合格したので勉強方法など共有できればと思います。 試験概要 勉強方法について 試験の印象 認定証 所感 試験概要 Google Cloud認定試験の一つでビックデータまわりの知識を問われます。試験の概要はこち…

Dataflowが解決するストリーミング処理の課題と基盤構築で考慮すること

Dataflowが解決するストリーミング処理の課題と基盤を作る上で考慮すべき点をいくつか資料を参考に備忘録もかねて整理してみました。 ストリーミング処理の概要 ストリーミング処理とは バッチ処理との違い ストリーミング処理の課題 データ量と変動性 遅延…

Cloud Pub/Subの概要とPythonでの実践

Cloud Pub/Subの概要とPythonでの使い方を記事にしました。簡単な概要と、Python Clientを使いトピック・サブスクリプションの作成からメッセージ送信・確認まで行います。 Code Cloud Pub/Subの概要 Cloud Pub/Subとは メッセージ配信法式 Pub/SubとDataflo…

BigQueryのウィンドウ処理

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

Dataflowが得意なこと、苦手なこと

Dataflowが得意なこと、苦手なことを考えてみました。 得意なこと バッチ/ストリーミング処理(特にストリーミング処理) サイズの大きいデータを扱うこと サーバ費用を抑えること 苦手なこと 逐次処理 複雑なパイプライン制御(役割が異なる) 得意なこと バッ…

AutoMLでDSの役割がどう変わりそうなのか調べてみた

著名な方の意見を参考にAutoMLでDSの役割がどう変わりそうなのか調べてみました。 AutoMLとは 実施手順 STEP 1 STEP 2 STEP 3 メリット 推定精度が高い 簡単でGCP上で完結する 簡単な分析も可能 デメリット 推定精度が安定しない 費用が高く学習頻度が多い場…

Cloud Composerを使いDataflowのパイプライン制御をする方法

Cloud ComposerでDataflowテンプレートを順次キックしていく逐次処理を行います。順番に処理が行われたことを確認するために前のDataflowのテンプレート実行し作られたファイルを参照する処理にしました。 code Composer環境を作る Dataflowのテンプレートを…

Dataflowパイプライン処理の備忘録:Python

Dataflowで使うパイプライン処理の備忘録です。随時更新できればと思います。 options udf branch group by Filter beam.apache.org options # -*- coding: utf-8 -*- import apache_beam as beam # プロジェクトID PROJECTID = 'project id' # オプション設…

Dataflowカスタムパラメータの追加方法:Python

Dataflowテンプレートでカスタムパラメータを追加します。パラメータを静的に定義する方法とテンプレート実行時に動的にパラメータを指定する方法を紹介します。gclodコマンドで実行しますが、Cloud Functonsからテンプレートをキックする方法は以下の記事を…

Cloud Schedulerのパイプライン制御における活用用途について

Cloud Schedulerとは どのような時に使うか? Cloud Composerとの違い パイプライン制御におけるトリガーとしての役割 運用フローを考慮したトリガー選定 Cloud Schedulerとは GCPが管理するフルマネージドでサーバレスなクーロンサービスです。 どのような…

Cloud Composerの活用事例と料金体系について

Cloud Composerの活用事例と料金体系について調べてみました。 Cloud Compoer とは? Cloud Compoer活用事例 メルペイ メルカリ DeNA JapanTaxi エウレカ リブセンス SmartNews BrainPad 料金体系について 所感 Cloud Compoer とは? Cloud ComposerはGCPが…

Dataflowテンプレート実行方法:Python

GAEなどでDataflowのテンプレートの実行方法です。パラメータは以下のようにして渡します code Dataflowのテンプレートの実行 code github.com Dataflowのテンプレートの実行 "parameters": { "input": "gs://{}/sample2.csv".format(PROJECTID), "output": …

Cloud FunctionsでDataflowテンプレートをキックさせる方法:Python

Cloud FunctionsでGCSのバケットに置かれたファイルを検知し、Dataflowのテンプレートをキックします。パラメータとしてCloud Functionsでファイル名を取得し、Dataflowのテンプレートに引数として渡します。GCSから加工しGBQに取り込むケースなどに使います…

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

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

Dataflowテンプレート作成方法

Pythonベースで記述したDataflowのコードをテンプレート化し、実行してみます。テンプレートを作成するためには以下のコードを追記するだけです。コードを実行するとGCS内にテンプレートが作られるので、作成したテンプレートを実行してみます。 gcloud_opti…

DataflowでPython3系を使って良いのか検討してみた

DataflowでPython3系を使って良さそうか調べてみました。 Python3系を使いたい理由 DataflowのPython3系のサポート状況について Apach Beamのissueについて 動作確認 ストリーミング処理は? 結論(個人的な) Python3系を使いたい理由 DataflowはETLツールな…

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

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

OAuth2.0のGCPでのシーケンスや推奨方法について

OAuth2.0のGCPでのシーケンスや推奨方法を調べてみました。OAuth2.0の簡単な概要からGCPで採用している認証方法とOAuth2.0で許可証を発行する場合のシーケンスとサンプルとなります。 OAuth2.0とは? GCPで採用している認証処理 GCPのOAuth2.0のシーケンス …

Jupyter NotebookでBigQueryを使う方法

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

Bigtableの特性とスキーマ設計について

Bigtableについて調べてみました。 Bigtableとは 他のDBと比較 Bigtableのアーキテクチャ スキーマ設計 KEYの作り方 カラムファミリー 所感 Bigtableとは GCPプロダクトのNoSQLデータベースで大規模データをミリセックレベルの低レイテンシーで処理したい場…

Dataflowを検証「Python2系と3系」

GCPのサーバレスETLツールであるDataflowの検証をしてみました。前に使った時はPython2系しか使えなかったんですが3系のサポートも始めたらしいので期待です。 Dataflowとは Python 2系で実行 Python 3系で実行 Dataflowとは DataFlowはGCPのETLツールでデ…

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

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

入門記事:GCE (Google Compute Engine) で作るJupyter分析環境

Google Compute Engine(GCE)にJupyterで必要最低限の分析環境を作る入門者向けの記事です。 code インスタンス構築(GCE) IP制限の設定 Dockerインストール Jupyter環境構築(Docker) Jupyter環境構築(Dockerを使わない) code github.com インスタンス構築(GCE…

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

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

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

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

GCSのファイルをDataFrameで扱う方法

JupyterでGCSにあるファイルを読み込み、DataFrameとして扱う方法を紹介します。サーバにいちいちデータを落としたくない場合やディスク容量がない場合に使えるかもしれません。いつも通り完全に備忘録です。 #ライブラリ $ pip install google-cloud-storag…

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

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

【GCP入門】大規模データの前処理に!Dataprocクラスタ上で、Datalabを活用したデータ分析環境構築

今回は、GCPの可視化分析ツールDatalab [Goolge Cloud Datalab] の環境構築に関する記事を書いてみました。 Dataproc [Goolge Cloud Dataproc]クラスタ上でDatalabを構築するメリットを実際のユースケースも考慮して書いてみます。 本記事の目的 Datalabとは…

【GCP入門】大規模データの前処理に!DataprocでPySparkジョブを実行し、GCS内のデータを加工する

今回はDataproc クラスタ上でジョブを実行し、GCS内のデータを加工したいと思います。 本記事の目的 本記事の用途 事前準備[ Dataprocクラスタ, GCSバケット ] PySparkで簡単なジョブを実行 Pig ジョブの実行 出力ファイルの取得 GCS内のデータを活用してPyS…

【GCP入門】Google Cloud Dataprocで環境構築してみる

今回はGoogle Cloud Dataprocで環境構築をしてみました。Dataproc入門者を対象に記事を書きたいと思います。 本記事の目的 Google Cloud Dataprocとは Dataprocメリット・デメリット クラスタ構築 CLIでクラスタを管理 本記事の目的 ・Google Cloud Dataproc…