2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DataDirectでGoogle BigQueryからODBC接続でデータを取得

Last updated at Posted at 2020-05-20

本記事ではDataDirectドライバーを使用してGoogle BigQueryからODBC接続でデータを取得します。
JupyterNotebook上でデータを取得し、Google BigQueryのチュートリアル同様にデータ処理を行いました。

※以下のチュートリアルではODBC接続ではなく、直接BigQueryからデータを取得する方法が書かれています。
https://cloud.google.com/bigquery/docs/visualize-jupyter?hl=ja

環境

OS:Windows10
ODBCドライバー:DataDirect 8.0 Google BigQuery
Pythonバージョン:3.8

DataDirect 8.0 Google BigQueryのインストール

以下URLより評価版をダウンロードできます。
https://www.progress.com/connectors/google-bigquery

ダウンロード出来たらインストールを行っていきます。
基本的に「Next」で次に進めましょう。
以下の画面のチェックボックスはWindows ODBC AdministratorにユーザーDSNを追加するかを聞かれています。
後から設定するのでチェックを入れておくといいかもしれません。
image.png

あとは「Done」でインストールが完了するのを待ちましょう。

Windows ODBC Administratorの設定

設定をする前Google Cloud Platfoamのサービスアカウントの作成とアカウントキーのJSONファイルが必要になります。

分からない場合は以下を参考にしてみてください。
https://www.magellanic-clouds.com/blocks/guide/create-gcp-service-account-key/

image.png

設定項目 入力する内容
Data Source Name 任意の名前
Project プロジェクトID
Authentication Method Service Account
Email サービスアカウントのアドレス
Private key File JSONファイルのパス

以上を設定し終わったら、「Test Connect」で接続を確認します。

JupyterNotebookでデータを可視化

本記事では前章で設定したプロジェクトのリソースにsamplesデータセットのnatalityテーブルをコピーして使用しています。
Google BigQueryのチュートリアルにある年別の出生数の合計を可視化してみます。

pyodbcのインストール
pip install pyodbc

import pyodbc
import pandas as pd

cnxn = pyodbc.connect('DSN=Google BigQuery',autocommit=True)  #DSN=設定したDSN名
tableResult = pd.read_sql('SELECT source_year AS year,COUNT(is_male) AS birth_count  \
                        FROM samples.natality GROUP BY year ORDER BY year DESC LIMIT 15', cnxn)

df = pd.DataFrame(tableResult)
df

image.png

%matplotlib inline
df1.plot(kind='bar', x='year', y='birth_count')  #年別の出生数の合計の棒グラフ

image.png

まとめ

チュートリアルを実行したコードは以下で共有していますので参考にしてください。
Colaboratoryでは実行できないのでローカルにダウンロードしてJupyterNotebookで実行してみてください!
チュートリアル実行例

公式ではSimba社のODBCドライバーを提供していますが、Progress社の提供するDataDirectでも同じことが可能です。

DataDirectを使用するメリットは、国内企業であるアシスト社がDataDirectを扱っておりサポートを受けられることです。Simba社は日本に展開していないこともあり不安がある人、評価版を使用して気に入ったという人はDataDirectを検討してみてもいいかもしれませんね!
アシスト社のホームページ

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?