CData Python Connector for Google Spanner

Build 21.0.7930

Pandas から

コネクタと組み合わせることで、Pandas を使用してGoogle Spanner データを含むデータフレームを生成できます。作成したデーフレームは、他のさまざまなpython パッケージに渡すことができます。

接続

Pandas を使用するには、事前にインポートする必要があります。Pandas は、以下のように、クエリ実行時にSQLAlchemy エンジンにも依存します。

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("googlespanner:///?ProjectId='project1';InstanceId='instance1';Database='db1';OAuthClientId='757060765381';OauthClientSecret='abc';")

データのクエリ

SELECT クエリは、関連する接続オブジェクトとともに、Pandas の"read_sql()" メソッド呼び出しで提供されます。Pandas はその接続上でクエリを実行し、さまざまな目的で使用されるデーフレームの形式で結果を返します。

df = pd.read_sql("""
	SELECT
	   Name,
	   TotalDue,
     $exNumericCol;
	FROM [CData].[GoogleSpanner].Customer;""", engine)
print(df)

データの編集

新しいレコードをテーブルに挿入するには、新しいデータフレームを作成し、それに応じてフィールドを定義するだけです。そこから先は、以下の例のようにデータフレームで"to_sql()" を呼び出すだけで、コネクタでINSERT 操作を実行できます。"if _exists" 引数は、Pandas がテーブルをゼロから構築しようとするのを防ぐために、必ず"append" に設定し、Pandas がカラムとしてデータフレームインデックスを書き込むのを防ぐ必要がある場合はindex=False と設定します。

df = pd.DataFrame({"Name": ["Jon Doe"], "TotalDue": ["John"]})
df.to_sql("[CData].[GoogleSpanner].Customer", con=engine, if_exists="append", index=False)

Copyright (c) 2021 CData Software, Inc. - All rights reserved.
Build 21.0.7930