各製品の資料を入手。
詳細はこちら →CData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
PostgreSQL には多くの対応クライアントがあります。標準のドライバーからBI、アナリティクスツールまで、PostgreSQL はデータ接続の人気のインターフェースです。JDBC ドライバーを使用することで、簡単に任意の標準クライアントから接続できるPostgreSQL エントリポイントを作成できます。
Google Sheets にPostgreSQL データベースとしてアクセスするには、CData JDBC Driver for GoogleSheets とJDBC foreign data wrapper (FDW) を使用します。この記事ではFDW をコンパイルしてインストールし、PostgreSQL サーバーからGoogle Sheets にクエリを実行します。
JDBC データソースとしてGoogle Sheets に接続するには、以下が必要です。
Driver クラス
cdata.jdbc.googlesheets.GoogleSheetsDriver
スプレッドシートに接続するには、Google への認証を行い、Spreadsheet 接続プロパティにスプレッドシートの名前またはフィードリンクを設定します。Google Drive のスプレッドシートの情報一覧を表示したい場合は、認証後にSpreadsheets ビューにクエリを実行します。
ClientLogin(ユーザー名 / パスワード認証)は、2012年4月20日より正式に非推奨となり、現在は利用できません。代わりに、OAuth 2.0 認証規格を使用してください。 個々のユーザーに代わってGoogle API にアクセスするには、埋め込みクレデンシャルを使用するか、独自のOAuth アプリを登録します。
OAuth は、Google Apps ドメインのユーザーに代わって、サービスアカウントを使って接続することもできます。サービスアカウントで認証するには、OAuth JWT 値を取得するためのアプリケーションを登録する必要があります。
Google アカウント、Google Apps アカウント、二段階認証を使用するアカウントなど、様々なアカウントタイプでGoogle スプレッドシートに接続する方法は、ヘルプドキュメントの「はじめに」を参照してください。
JDBC URL の構成については、Google Sheets JDBC Driver に組み込まれている接続文字列デザイナを使用できます。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.googlesheets.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
以下は一般的なJDBC URL です。
jdbc:googlesheets:Spreadsheet=MySheet;InitiateOAuth=GETANDREFRESH
FDW は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。例としてjdbc2_fdw 拡張子を使用します。
ln -s /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so /usr/lib/libjvm.so
make install USE_PGXS=1
拡張機能をインストールした後、以下のステップに従ってGoogle Sheets へのクエリの実行を開始します。
CREATE EXTENSION jdbc2_fdw;
CREATE SERVER GoogleSheets
FOREIGN DATA WRAPPER jdbc2_fdw OPTIONS (
drivername 'cdata.jdbc.googlesheets.GoogleSheetsDriver',
url 'jdbc:googlesheets:Spreadsheet=MySheet;InitiateOAuth=GETANDREFRESH',
querytimeout '15',
jarfile '/home/MyUser/CData/CData\ JDBC\ Driver\ for\ Salesforce MyDriverEdition/lib/cdata.jdbc.googlesheets.jar');
CREATE USER MAPPING for postgres SERVER GoogleSheets OPTIONS (
username 'admin',
password 'test');
postgres=# CREATE FOREIGN TABLE orders (
orders_id text,
orders_Shipcountry text,
orders_OrderPrice numeric)
SERVER GoogleSheets OPTIONS (
table_name 'orders');
postgres=# SELECT * FROM orders;
このようにCData JDBC Driver for GoogleSheets を使って簡単にGoogle Sheets のデータを取得して検索対象にすることができました。ぜひ、30日の無償評価版 をお試しください。