GCPの割り当て(クオータ・Quotas)をAPIから変更する情報見つけたのでやってみる

BigQueryの割り当て(クオータ・Quotas)をAPIから変更する方法を探していましたが、GCP公式ドキュメント見てもコンソールでの作業ばかりしか記載が見つかりません。 cloud.google.com GCPの公式ドキュメントはほとんどの項目でgcloud等で設定するパターンが書…

Cloud SpannerからAvro経由でBigQueryにデータのExport Import

SpannerのデータをBigQueryに取り込む方法です。基本は以下の2つの内容を組み合わせます。 cloud.google.com cloud.google.com 簡単に図にするとこんな感じです。 Dataflowジョブの登録 bqコマンドでAvroをロード Dataflowジョブの登録 今回利用するのはGoo…

Terraformで「dial tcp connection refused」が出たら並列数を疑ってみる

何度も実行したTerraformの定義で、別の環境から実行したらエラーが出ているという話を聞いて調べてみた、エラー対応メモです。 内容としては以下のようなメッセージです。「terraform plan」で発生します。 何度か目の前で叩いてもらうと、エラーが出るサー…

Google Cloud SpannerにTableauからJDBC接続する手順

参考URLにも記載した、こちらの記事の方法で接続可能です。 JDBCダウンロード Spanner接続用のアカウント作成 TDCファイル作成(Tableau Datasource Customizatio) Tableau再起動 Spannerをデータソースとして接続 参考URL JDBCダウンロード SpannerにJDBC経…

GCP Cloud ComposerからSendGrid経由でメール通知を行う

Cloud Composerからのメール送信はSendGridを使うのが簡単です。 以下の通り、Googleからも簡単な手順も用意されていますが、画面付きで手順書いてみます。 https://cloud.google.com/composer/docs/how-to/managing/creating?hl=ja#notification SendGrid登…

Python+Cloud DataflowのPubSubストリーミングをGoogle Colaboratory使って試す

Google ColabでGCP使うには GCPの認証 PyPiモジュールのインストール PubSub側準備 左のブラウザ(Publish側) 右のブラウザ(BeamでSubscribe側) Cloud Dataflowで実行 後片付け PubSub削除 Cloud Dataflowのジョブ停止 最後に やりたいことのGIF動画です。…

PythonでJDBC使ってSQL ServerクエリしていたらUnicodeEncodeErrorにぶち当たった

時々見るエラーですが、大きなテーブルを読み込むETL処理で出た時などは、だいぶ辛い気分になります。 UnicodeEncodeError: 'utf-8' codec can't encode characters in position 0-1: surrogates not allowed SQLで該当を探す SparkやBeamを使って大規模デー…

Cloud Composerが作成できなくなった

ある日、TerraformでCloud Composerのテスト環境構築したら以下のエラーでCloud Composerが立ち上がらなくなりました。 Error: Error waiting to create Environment: Error waiting for Creating Environment: Error code 7, message: Custom service accou…

Cloud Dataflowでシンプルな同期処理のヒント実装

最初はシンプルな差分同期方法の実装を書こうと思ったのですが、どうしても固有要件が入ってしまうので同期処理のヒント実装を書くことにしました。 手元で試せるように、Beam以外の部分はダミー関数としています。データソース取ってくるところと、データ書…

Cloud Dataflowのトラブルシューティングで調べること備忘録

年始早々、Dataflowのエラーでかなりハマりました。 エラー自体は些細なことだったのですが、全然原因わからずに1日中悩んでしましました。 備忘も兼ねて、対応メモ書いておきます。 エラーの事象と対応 事象 開発中のジョブで、データ量的に数分で終わる、…

2019年の仕事を振り返る

明けましておめでとうございます。2019年の振り返りしようと思っていたら、いつまにか年が明けてしまいました・・ エンタープライズSI業界からWEB業界に移動して、またSIに戻ってきた一昨年2018年。その一昨年は、自社サービスの開発をメインに行っていた関…

Pythonで書くDataflowテンプレートでサードパーティ製JDBCドライバを使う

この記事の続きです。 yomon.hatenablog.com 以下にもある通り、今書いている時点ではApache BeamのPython SDKはビルトインでJDBC対応していません。 beam.apache.org PythonでJDBCドライバ使いたかったのはDataflowのPython SDK使ってもJDBC接続使いたかっ…

PythonでAzure SQL databaseにJDBC接続してみる

利用するモジュール SQL Server用のJDBC Driverダウンロード Pythonコード 既知のエラー 関連 利用するモジュール JDBCを使うためにこちらのモジュールを利用します。 github.com $ pip install JayDeBeApi SQL Server用のJDBC Driverダウンロード SQL Serve…

Cloud DataflowのテンプレートにPythonの外部パッケージを利用する

Cloud Dataflow + Python で作るテンプレートを登録する際に、pipでインストール可能なPyPiなどの外部パッケージをどうやって組み込むか調べました。 requirements.txtでpypi等の外部パッケージ使う方法 設定例 テンプレート作成 setup.pyでローカルパッケー…

Cloud ComposerからDataflowTemplateOperatorでwordcountジョブを実行する

Cloud Composer(Airflow)からDataflowTemplateOperatorの使い方がわからなかったので調べました。 Dataflowテンプレート登録 コード作成 コンパイル+アップロード Cloud ComposerのDAG作成 DAG定義スクリプト作成 AirflowのVariables設定 DAGファイルのイン…