GoogleBigQuery用のODBCドライバーをリリースしました。このドライバーを使用すると、GoogleBigQueryコンソール以外のアプリケーションでBigQueryデータをクエリおよび更新できます。これらのサードパーティアプリケーション(Perl、PHP、Excel、Oracleなど)で実行できることのいくつかを共有すると思いました。
BigQueryODBCドライバーのインストール
- クライアントアプリケーションがインストールされているマシンにGoogleBigQueryODBCドライバーをインストールしてライセンスを取得します。
たとえば、ExcelでBigQueryデータを操作する場合は、ExcelがインストールされているマシンにBigQueryODBCドライバーをインストールします。
これを行うには、ファイル配布を実行し、画面の指示に従います。
ライセンスを取得するまでBigQueryODBCドライバーを使用できないため、インストールプログラムはEasysoftLicenseManagerを起動します。
次の種類のライセンスを利用できます。
- 期間限定の無料試用ライセンス。期間限定(通常は14日間)で製品を無料で無制限に使用できます。
- 製品を購入した場合はフルライセンス。製品を購入すると、ライセンスを取得するために使用する認証コードが与えられます
- Easysoft License Managerで、詳細を入力します。
[名前]、[電子メールアドレス]、および[会社]フィールドに入力する必要があります。
電子メールアドレスは、Easysoft Webサイトからの登録およびダウンロードに使用されるアドレスと同じである必要があります。同じでない場合、試用ライセンスを取得できません。
- リクエストライセンスを選択します。
ライセンスの種類を尋ねられます。
- 次のいずれかを実行します:
- 試用ライセンスの場合は、[期間限定試用]をクリックしてから、[次へ]をクリックします。
License Managerは、ライセンスを取得しているソフトウェアを尋ねます。ドロップダウンリストからEasysoftBigQueryODBC Driverを選択し、[次へ]をクリックします。
- 購入したライセンスの認証コードを取得した場合は、[有効期限が切れていないライセンス]を選択し、[次へ]をクリックします。
LicenseManagerが認証コードを要求します。
承認コードを入力し、[次へ]をクリックします。
- 試用ライセンスの場合は、[期間限定試用]をクリックしてから、[次へ]をクリックします。
- License Managerは、入力した情報の概要を表示し、ライセンスの申請方法を選択できるようにします。
- 次のいずれかを実行します:
- マシンがインターネットに接続されていて、ポート8884に発信接続できる場合は、[オンラインリクエスト]を選択します。
次に、ライセンスマネージャはEasysoftライセンスサーバーにリクエストを送信して、ライセンスキーを自動的にアクティブ化します。これが最も迅速な方法であり、詳細がサポートデータベースにすぐに入力されます。
- 残りの3つのオプション(Eメールリクエスト、印刷リクエスト、表示リクエスト)はすべて、マシンがオフラインの場合(つまり、インターネットに接続していない場合)にライセンスを取得する方法です。
これらの各方法では、Easysoftにマシン番号(マシンに固有の番号)などの情報を提供し、ライセンスキーの受信を待機します。
Easysoftに詳細を電子メールで送信する代わりに、Easysoft Webサイトで直接入力すると、ライセンスキーが自動的に電子メールで送信されます。
この方法を使用するには、[リクエストの表示]をクリックして、次のURLにアクセスします。
- 試用ライセンスページ
- フルライセンスページ
[ライセンス]ページで、マシン番号(および購入したライセンスの認証コード)を入力し、[送信]をクリックすると、ライセンスキーが電子メールで送信されます。
ライセンスキーを受け取ったら、電子メールの添付ファイルをダブルクリックするか、ライセンスマネージャーのメイン画面で[ライセンスの入力]をクリックして、ダイアログボックスにライセンスキーを貼り付けることで、ライセンスキーをアクティブ化できます。
- [完了]を選択してライセンスマネージャーを終了します。
インストールが完了しました。
- マシンがインターネットに接続されていて、ポート8884に発信接続できる場合は、[オンラインリクエスト]を選択します。
ODBCデータソースの構成
BigQuery ODBCドライバーを使用してアプリケーションをBigQueryに接続する前に、ODBCデータソースを設定する必要があります。 ODBCデータソースには、ターゲットデータベース(BigQueryなど)とそれに接続するために必要なODBCドライバー(BigQuery ODBCドライバーなど)の接続の詳細が格納されます。
ODBCデータソースは、Windowsに含まれているODBCAdministratorで構成されます。 ODBC Administratorの実行方法は、アプリケーションが32ビットか64ビットかによって異なります。
- 私のアプリケーションは32ビットです
[Windowsの実行]ダイアログボックスで、次のように入力します。
%windir%\syswow64\odbcad32.exe
- 私のアプリケーションは64ビットです
コントロールパネルで[システムとセキュリティ]>[管理ツール]を開き、ODBCデータソース(64ビット)を開きます。 (Windows Server 2003以前では、ODBC Administratorを起動するコントロールパネルアプレットにはデータソースというラベルが付いています。)
アプリケーションが32ビットか64ビットかを見分ける方法
アプリケーション | メモ |
---|---|
Excel | Excelには32ビットバージョンと64ビットバージョンの両方があります。使用しているExcelのバージョンを確認するには、Excelを起動してから、Windowsタスクマネージャを起動します。タスクマネージャで、[プロセス]タブを選択します。 Excel.exe を探します リストにあります。このプロセス名の後に*32 が続く場合 、Excelのバージョンは32ビットです。それ以外の場合、Excelのバージョンは64ビットです。 |
GoodData | CloudConnectDeignerは64ビットアプリケーションです。 |
マイクロストラテジー | MicroStrategyは32ビットアプリケーションです。 |
Oracle | MongoDBODBCドライバーと対話するOracleコンポーネントはDG4ODBCと呼ばれます。 DG4ODBCには、32ビットバージョンと64ビットバージョンの両方があります。使用しているDG4ODBCのバージョンを確認するには、Windowsタスクマネージャーを起動し、[プロセス]タブを選択します。コマンドプロンプトウィンドウで、「dg4odbc --help 」と入力します 。 Windowsタスクマネージャーで、DG4ODBCプロセスを探します。イメージ名が「dg4odbc.exe*32」の場合、DG4ODBCは32ビットです。イメージ名が「dg4odbc.exe」の場合、DG4ODBCは64ビットです。 Windowsタスクマネージャを使用してDG4ODBCのアーキテクチャを確認したら、コマンドプロンプトウィンドウでCTRL+Cを押します。 |
Oracle Business Intelligence Enterprise Edition(OBIEE) | MongoDB ODBCドライバーと対話するOBIEEコンポーネントは、Oracle BIAdministrationToolと呼ばれます。 OracleBI管理ツールは64ビットです。 |
PHPRunner | PHPRunnerは32ビットアプリケーションです。 |
QlikView | [32ビットを強制する]チェックボックスがオンになっている場合、QlikViewは32ビットアプリケーションです。それ以外の場合、QlikViewは64ビットアプリケーションです。 |
SAP BusinessObjects | CentralManagementServerは64ビットアプリケーションです。 Business View Manager、Information Design Tool、およびWeb IntelligenceRichClientは32ビットアプリケーションです。 |
SAP Crystal Reports | CrystalReportsは32ビットアプリケーションです。 |
SQL Server | SQLServerには32ビットバージョンと64ビットバージョンの両方があります。使用しているSQLServerのバージョンを確認するには、SQL Serverインスタンスに接続してから、次のSQLステートメントを実行します。select SERVERPROPERTY('edition') 64ビットバージョンのSQLServerを使用している場合および リンクサーバーをBigQueryODBCドライバーで使用する場合、アプリケーションは64ビットです。 32ビットバージョンのSQLServerを使用している場合または BigQuery ODBCドライバーでSSISを使用したい場合、アプリケーションは32ビットです。 |
タブロー | Tableauは32ビットアプリケーションです。 |
TIBCOスポットファイア | TIBCOSpotfireは64ビットアプリケーションです。 |
ODBCアドミニストレータの場合:
- [システムDSN]タブを選択し、[追加]を選択します。
- [Create New Data Source]ダイアログボックスで、[Easysoft ODBC]-[BigQuery Driver]を選択し、[Finish]を選択します。
- Easysoft ODBC-BigQueryドライバーDSNセットアップダイアログボックスで次のフィールドに入力します:
設定 値 DSN BigQuery トークンの更新 Authenticate and getトークンを選択し、BigQueryODBCドライバーにBigQueryデータにアクセスしてこのフィールドに入力する権限を付与します。 - アプリケーションで、新しく構成したデータソースに接続し、サンプルクエリを実行します。例:
select * from MyTable limit 10
PerlでBigQueryデータを操作する
Strawberry Perlは、BigQueryODBCドライバーがPerlアプリケーションをBigQueryに接続できるようにするために必要なミドルウェアレイヤー(PerlDBIおよびPerlDBD ::ODBC)を含むWindows用のPerlディストリビューションです。
- BiqQueryデータを取得するPerlスクリプトは次のとおりです。
#!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI-> connect('dbi:ODBC:MyBigQueryDataSource'); my $sql = "SELECT residential_ratio FROM `bigquery-public-data.hud_zipcode_crosswalk.census_tracts_to_zipcode` LIMIT 10"; # Prepare the statement. my $sth = $dbh->prepare($sql) or die "Can't prepare statement: $DBI::errstr"; # Execute the statement. $sth->execute(); my($BigQueryCol); # Fetch and display the result set value. while(($BigQueryCol) = $sth->fetchrow()){ print("$BigQueryCol\n"); } $dbh->disconnect if ($dbh);
- BigQueryデータを挿入するPerlスクリプトは次のとおりです。
#!/usr/bin/perl -w use strict; use warnings; use DBI; my $data_source = q/dbi:ODBC:MyBigQueryDataSource/; my $h = DBI-"connect($data_source) or die "Can't connect to $data_source: $DBI::errstr"; $h->{RaiseError} = 1; my $s = $h->prepare(q/insert into MyTable(MyStringCol, MyIntegerCol, MyFloatCol, MyNumericCol, MyBooleanCol,MyDateCol,MyTimeCol,MyDateTimeCol,MyTimeStampCol) values(?,?,?,?,?,?,?,?,?)/); my $string='MyValue'; my $int=46683; my $float=8.3; my $numeric=0.00333; my $bool=0; my $date='2021-01-23'; my $time='00:00:20'; my $datetime='2021-02-05 00:00:00'; my $timestamp='2019-01-27 00:00:00'; $s->bind_param(1, $string, DBI::SQL_WVARCHAR); $s->bind_param(2, $int, DBI::SQL_INTEGER); $s->bind_param(3, $float, DBI::SQL_FLOAT); $s->bind_param(4, $numeric, DBI::SQL_NUMERIC); #$s->bind_param(5, $bignumeric, DBI::SQL_WVARCHAR); $s->bind_param(5, $bool, DBI::SQL_TINYINT); $s->bind_param(6, $date, DBI::SQL_DATE); $s->bind_param(7, $time, DBI::SQL_TIME); $s->bind_param(8, $datetime, DBI::SQL_DATETIME); $s->bind_param(9, $timestamp, DBI::SQL_TIMESTAMP); $s->execute($string,$int,$float,$numeric,$bool,$date,$time,$datetime,$timestamp); $h->disconnect;
- BigQueryレコードを更新するPerlスクリプトは次のとおりです。
#!/usr/bin/perl -w use strict; use warnings; use DBI; my $data_source = q/dbi:ODBC:MyBigQueryDataSource/; my $h = DBI->connect($data_source) or die "Can't connect to $data_source: $DBI::errstr"; $h->{RaiseError} = 1; my $s = $h->prepare(q/UPDATE MyTestTable SET MyStringCol = ? WHERE MyStringCol = 'MyValue' /); my $string='MyNewValue'; $s->bind_param(1, $string, DBI::SQL_WVARCHAR); $s->execute($string); $h->disconnect;
PHPでBigQueryデータを操作する
- BiqQueryデータを取得するPHPスクリプトは次のとおりです。
<?php $con = odbc_connect("MyBigQueryDataSource", "", ""); $err = odbc_errormsg(); if (strlen($err) <> 0) { echo odbc_errormsg(); } else { $rs2 = odbc_exec($con, "select MyCol from MyTable"); odbc_result_all($rs2); odbc_close($con); } ?>
ExcelをBigQueryに接続する
次の手順に従って、MicrosoftQueryを使用してBigQueryからMicrosoftExcelにデータを返します。
- データについて タブで、新しいクエリ>他のソースから>ODBCからを選択します 。
- プロンプトが表示されたら、BigQueryODBCデータソースを選択します。
- 利用可能なデータセットからテーブルを選択します。
- ロードを選択してBiqQueryデータを返します ワークシートに。
大規模な結果セットの場合、データをワークシートに返す前に、Excelを使用してデータをフィルタリングする必要がある場合があることに注意してください。
OracleからBigQueryに接続
- OracleマシンにDG4ODBC初期化ファイルを作成します。これを行うには、
%ORACLE_HOME%\hs\admin
に変更します。 ディレクトリ。ファイルinitdg4odbc.ora
のコピーを作成します 。新しいファイルにinitbq.ora
という名前を付けます 。注 これらの手順では、%ORACLE_HOME%をOracleHOMEディレクトリの場所に置き換えます。例:
C:\oraclexe\app\oracle\product\11.2.0\server
。 - これらのパラメータと値がinitファイルに存在することを確認してください:
HS_FDS_CONNECT_INFO = MyBigQueryDataSource
- DG4ODBCトレースを有効にする行をコメントアウトします。例:
#HS_FDS_TRACE_LEVEL = <trace_level>
-
%ORACLE_HOME%\network\admin\listener.ora
にエントリを追加します これにより、DG4ODBCのSID_NAMEが作成されます。例:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=bq) (ORACLE_HOME=%ORACLE_HOME%) (PROGRAM=dg4odbc) ) )
- DG4ODBCエントリを
%ORACLE_HOME%\network\admin\tnsnames.ora
に追加します これは、前の手順で作成したSID_NAMEを指定します。例:BQ = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = bq) ) (HS = OK) )
oracle_hostを置き換えます Oracleマシンのホスト名を使用します。
- Oracleリスナーを起動(または再起動)します:
cd %ORACLE_HOME%\bin lsnrctl stop lsnrctl start
- SQL*PlusでOracleデータベースに接続します。
- SQL * Plusで、ターゲットBigQueryインスタンスのデータベースリンクを作成します。例:
CREATE PUBLIC DATABASE LINK bqlink CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'bq';
- BigQueryデータをクエリしてみてください。例:
SELECT * FROM "MyTable"@BQLINK;
メモ
- OracleからBigQueryへの接続に問題がある場合は、DG4ODBCトレースを有効にして、
%ORACLE_HOME%\hs\trace
に書き込まれたトレースファイルを確認してください。 ディレクトリ。 DG4ODBCトレースを有効にするには、HS_FDS_TRACE_LEVEL = DEBUG
という行を追加します。initbq.ora
へ 次に、Oracleリスナーを起動/再起動します。trace
の場合 ディレクトリが存在しない場合は作成してください。 - ODBC Driver Managerトレースを有効にしても、トレースファイルを取得しない場合、または空のトレースファイルを取得しない場合(C:\ SQL.logを確認)、トレースファイルの場所をWindowsTEMPディレクトリに変更します。例:
C:\Windows\Temp\SQL.log
。