Google BigQuery
接続タイプ | Alteryxツール。最新のバージョンは、Alteryxコミュニティ から入手できます。 |
サポートのタイプ | 読み取り、書き込み |
検証済み | ODBCクライアントバージョン2.4.6.1015 |
ドライバーの詳細
Alteryx Google BigQuery ツールで接続を設定する前に、Google Cloud の管理者によるアクションが必要になる場合があります。
Google BigQueryでは、認証方法としてOAuthが必要です。当社では、Simba ODBCドライバー(DSNを経由)、またはAlteryx (DCMを使用)で、OAuthをサポートしています。
接続に使用する Alteryx ツール
標準的なワークフロー処理
インデータベースのワークフロー処理
注記
重要
ハイフンなどの特殊文字を含むプロジェクト、データセット、テーブルは、引用符で囲む必要があります。詳細については、「Google BigQuery Error with hyphens in SQL Query (SQLクエリのハイフンによるGoogle BigQueryのエラー)」ナレッジベース記事を参照してください。
インデータベースのワークフロー処理は、DCMを使用する場合でのみサポートされます。
InDB読み取り接続と書き込み接続に使用されるGoogle BigQueryデータセットは、同じである必要があります。
Google BigQueryバルク接続の設定
Google BigQueryバルク の使用は、DCM を使用している場合にのみサポートされます。データ出力ツールを使用してバルク接続を使用するには:
[データ接続マネージャー] が有効になっていることを確認します。
[接続を設定] を選択し、[データソース] - [Google BigQueryバルク] を選択します。
[データソースの追加] を選択します。
[データソース名] を入力します。
[カタログ(プロジェクト)] を入力します。これは、テーブルが書き込まれるデータセットと、ステージングに使用されるGoogle Cloud Storageバケットの両方を含む、Google BigQueryプロジェクトIDです。
[データセット] を入力します。これは最終テーブルが書き込まれる場所です。
[バケット名] を入力します。これは、バルクロードのためのGoogle Cloud Storageのステージング場所です。バケットはプロジェクトと同じ場所にある必要があります。
[保存] を選択します。
[+ 資格情報の接続] を選択します。Cloud Storageでのステージングには、Google BigQueryプロジェクトと同じ資格情報が使用されます。
[認証方法] を選択し、
DCMを使用したOAuth の手順に従います。
接続を選択します。
テーブル名を入力し、[OK] を選択します。
DCMを使用したOAuth
DCMに統合されたOAuthを使用して、Google BigQueryの認証を設定できます。この方法では、ODBCドライバーにトークンを手動でコピーする必要はありません。
必要条件
OAuthを設定するには、次のものが必要です。
[認証方式] オプションが [OAuth] に設定されている準備済みの有効な DSN。
管理者から提供される、OAuth認証局のURL、ポート、クライアントID、クライアントシークレット。
認証の設定
Designerで、入力ツールをキャンバスにドラッグします。
[データ接続マネージャー(DCM)の使用] チェックボックスをオンにします。
[接続を設定します] を選択します。
[データ接続] ウィンドウで、[データソース] に移動し、[Google BigQuery ODBC] を選択します。
[接続マネージャー] ウィンドウが開きます。[+ データソースの追加] を選択します。
[テクノロジー] には、[Google BigQuery ODBC with Simba] を選択します。
[データソース名] に入力し、準備済みの [Google BigQuery DSN] を選択します。
[保存] を選択します。
資格情報をリンクするには 、[+ 資格情報の接続] を選択します。
認証方式 として OAuth を選択します。
OAuthアプリケーション の場合、[新しい資格情報の作成] を選択し、必要な情報を入力します(管理者から OAuth 認証局の URL、ポート、クライアント ID、クライアントシークレットを教えてもらう必要があります)。
[OAuth トークン] の、[新しい資格情報の作成] を選択します。
[資格情報名] を入力し、[作成とリンク] を選択します。
接続を選択します。
Googleマネージャー外部ブラウザウィンドウでサインインします。
注記
DCMでのトークンの管理方法により、OAuth承認プロセスを2回実行するように求められる場合があります。
Google BigQueryは常にテーブルを引用符で囲みます。
追加は、フィールド名で行われます。名前またはデータ型が一致しない場合、Google BigQueryはエラーをスローします。
形式固有のオプションで [Null値をサポートする] をオンにし(既定でオンです)、NullデータをGoogle BigQueryにロードできるようにします。このオプションがオフの場合、Google BigQueryはNull値を拒否します。
ターゲットテーブルの余分な列は、Alteryxに含まれていない場合、Nullとしてロードされます。
列名には、英字(a-z、A-Z)、数字(0-9)、またはアンダースコア(_)のみを含める必要があります。また、先頭は英字またはアンダースコアである必要があります。列名の最大長は300文字です。詳細については、Google BigQueryのドキュメントを参照してください。
出力コネクタスキーマ
Google BigQuery 出力ツールに渡されるフィールド名とフィールドタイプは、宛先の Google BigQuery テーブルのフィールド名およびフィールドタイプと一致している必要があります。Google BigQuery テーブルに存在しても、ワークフローフィールドリストに存在しない列は、挿入されたレコード内のそれらの列に対して NULL 値を生成します。そのため、出力列を NULLABLE に設定していない場合はエラーが発生します。
入力進行状況インジケーター
カスタムクエリを含まない入力ツール内の選択したテーブルのストリーミングバッファに行が存在する場合、入力ツールは Google が報告するストリーミングバッファ内の推定行数を使用しながら、実行中のワークフローの進行状況インジケーターのパーセンテージを更新します。Google の推定値が正しくない場合は、進行状況インジケーターで報告される値も正しくない可能性があります。
クエリ対象のテーブルが空で、そのテーブルのストリーミングバッファが空でない場合、Google によってストリーミングバッファ内の行数が 0 と推定される可能性があります。その場合でも、引き続きGoogle がストリーミングバッファから行を返す場合があります。このとき、進行状況インジケーターのパーセンテージは更新されず、警告が表示されます。
Google BigQueryツールを使用した接続の設定
Google BigQuery 認証情報については、Google Cloud 管理者にお問い合わせください。
Designerバージョン22.1以降、Simba ODBCドライバーによるOAuth認証がサポートされています。
サービス間認証のセットアップ
サービスアカウントの JSON キーファイルは、Google Cloud Consoleから取得することも、 既存のサービスアカウント用に新しいキーを作成することもできます。Google BigQuery の詳細については、BigQuery ドキュメント にアクセスし、「サービス アカウントキーの作成と管理」を参照してください。
エンドユーザー認証のセットアップ
Google Cloud Console の認証情報ページから OAuth クライアント ID とシークレットを取得します。クライアントタイプが [その他] に設定されていることを確認します。
注記
可能な限り、エンドユーザー認証に対してサービス間認証を使用します。同じサービスアカウントを認証する様々なアプリケーションの個別のキーを管理することにより、他のアプリケーションが認証資格情報を更新する必要なく、特定のアプリケーションのアクセスを取り消すことができます。
アクセス権限
Google BigQuery プロジェクトサービスアカウント内のデータの読み取りおよび書き込み権限は、Google Cloud Console から付与する必要があります。権限の詳細については、Big Query ドキュメント を参照してください。
ネストされた繰り返しのレコードの最大の深さ
ネストされた繰り返しのレコードは、1 レベルの深さでサポートされます。ネストされた繰り返しのレコードは、ネストレベル 2 以上ではサポートされていません。ネストされた繰り返しのレコードの詳細については、BigQuery ドキュメント を参照してください。
空間データあり
Google BigQueryは空間データの書き込みをサポートしていません。
DATETIMEフィールド
Google BigQueryに書き込む場合:
Designerでは、ODBCを使用して書き込みを行うと、日付/時刻フィールドはDATETIMEとして作成され、バルクローダーを使用して書き込みを行うと、日付/時刻フィールドはTIMESTAMPとして作成されます。
Google BigQueryでは、TIMESTAMPはDATETIMEと同じものとして扱われ、EXTRACTを使用して解析できます。
ネストされた繰り返しレコードのフラット化
入力時
Google BigQueryテーブルからネストされたレコードまたは繰り返しのレコードを取得する場合、Alteryxワークフローは次の命名スキーマに従い、ネストされたレコードと繰り返しのレコードをフラット化します。
最上位レベルの列 top_attr のネストされたレコード nested_attr は、nr_top_attr_nested_attr という名前の新しい列を作成します。
出力時
Alteryx ワークフローから既存の Google BigQuery テーブルにレコードをプッシュする際にネストされたレコードまたは繰り返しのレコードにレコードフィールドを含めるか指定するには、出力コネクタに流れるレコードフィールドの名前を以下の命名規則に従って変更します。
最上位レベルの列 top_attr 上にネストする必要があるレコード nested_attr の名前を nr_top_attr_nested_attr に変更する必要があります。
最上位レベルの列 top_attr の下で任意の回数だけネストおよび繰り返す必要があるレコード nested_attr の名前を、nrr_top_attr_{repetition_index}_nested_attr に変更する必要があります。ネストされたフィールドのすべての NULL 値を含む繰り返しは、Google BigQuery テーブルに新しい行を挿入する API 呼び出しの前に削除されます。つまり、Designer ワークフロー内のレコードには任意の最大繰り返し数を含めることができ、すべてのレコードに同じ数の繰り返しが必要となるわけではないのです。
AVROの制限事項
AVROの制限事項により、BigQueryバルクローダーはBIGNUMERICデータ型をサポートしていません。このデータ型は、Float (単精度浮動小数点数値型)として扱われます。
Google BigQueryバルクローダーを使用すると、DesignerはフィールドをDATETIMEとして作成できません。Designerバージョン23.2よりも前のバージョンでは、バルクローダーは日付を文字列としてロードします。