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ファイルのイン…

Amazon Elasticsearch ServiceにJDBCで接続してSQL実行する

Amazon Elasticsearch Service(以下、AES)にJDBC接続する方法です。 AESのSQL機能 AESのSQL機能はOpen Distro for ElasticsearchというAWS主導のプロジェクトで開発されています。 github.com この辺りは、AESのSQLのエンドポイントやプラグイン名にも表れ…

PandasのデータをpyarrowでParquet変換してGCS(Google Cloud Storage)にアップロード

タイトルの通りです。PandasのDataframeをpyarrowでParquetに変換して、そのままGCSにアップロードしています。 スクリプト こんな形で実行可能です。ファイルを経由しないでBufferから、そのままアップロードしています。 import pandas as pd import pyarr…

Parquetファイルの中身を確認するparquet-toolsをDocker使ってインストール無しで実行する

parquet-toolsをビルドするの面倒なので、Dockerで実行する方法。 parquet-tools Parquetの中身見るためのCLIです。 https://github.com/apache/parquet-mr/tree/master/parquet-tools Dockerでの実行方法 こちらのイメージ使わせてもらいます。Dockerfile見…

PandasとNumpyで大きなDataframeのデータを生成する方法

タイトルの通り、Pandas使ったちょっとしたテストで「それなりに」大きなDataframeを作りたい場合の例です。 import pandas as pd import numpy as np import datetime row_num = 10000000 string_values = ['Python', 'Ruby', 'Java', 'JavaScript', 'PHP',…

Azure Table StorageのデータをCloud Dataflowを使ってBigQueryに挿入する

Azure Table StorageのデータをCloud Dataflow (Apache Beam)から扱ってみたのでメモ。 対象のAzure Table Storage 対象としたTable Storageの中身です。mytable という名前にしました。このデータをDataflowを使ってBigQueryに挿入してみます。 準備 デー…

Azure Table Storageをpandas+pyarrowでParquet変換してBLOB側にアップロード

BeeX Advent Calendar 2019の12/6の記事です。空いてたので滑り込みです。 Azure Table Storageですが、対応しているツールも少なく、なかなか扱いずらいので、Pandasに読み込んで、Parquet形式に変更する方法を調べました。 対象 対象としたTable Storageの…

VPC Service Controlsで データポータルにもIP制限可能か調べてみた

VPC Service Controlsを利用してBigQuery APIへの接続にIP制限かけてみたのですが、BigQueryのフロントとして利用しているGoogle Data PortalもIP制限かけて利用したいと思いやってみました。 結論 Access Context Managerでアクセスレベルを定義 VPC Servic…

Apache AirflowでAzure BLOB Storageのオブジェクトを監視してワークフローをトリガする

AirflowにはAzureのパッケージが存在しています。 pip install 'apache-airflow[azure]' その辺りを使って、Azure Blob Storageへオブジェクトがアップロードしたことを検知して、ワークフローを流したいと思いました。 モジュールとしては以下のモジュール…

CLI でGoogle Cloud Functions + Serverless Framework開発環境を構築

Google Cloud FunctionsをServerless Frameworkでデプロイできる環境を作りたい場合、以下の公式ドキュメントに手法が載っています。 Serverless - Google Cloud Functions Documentation ただ、特に権限周りでGUIでの操作が面倒なので、CLI操作に変換して書…

GCP Cloud IAP経由のSSH接続にグローバルIP制限を組み込む

Cloud IAP(Identity-Aware Proxy)を使うと所謂Bastion(踏み台)インスタンスを構築せずとも、GCPに安全に接続できる構成が作れます。そこにGlobal IP制限も加えられるか設定してみました。 cloud.google.com 前提 [組織作業] グローバルIP制限用のアクセスレ…

GCEにSSHできなくなったのでログオンの仕組みを少し調べてみた

発端から。先日、Windowsをアップデートしてwsl2を使い始めているのですが、いつも通りgcloudでsshログオンしようとしたら下記のエラーが発生しましたので、ついでにログオンの仕組みを少し調べてみました。 # gcloud compute ssh my-instance root@XX.XX.XX…

PowerShellでS3のサーバーアクセスログをTSV形式に変換しEXCELで分析

S3はのサーバのアクセスログを取得することが可能です。 通情、このログを分析するなら、Athenaが便利です。公式にもわかりやすい手順が出ています。 Athena を使用したアクセスログの分析 ただ、色々な制約でAthenaが使えない、Pandasも使えない、ましてやD…