Google BigQuery
接続タイプ | Alteryxツール。最新のバージョンは、Alteryxコミュニティ から入手できます。 |
サポートのタイプ | 読み取り、書き込み |
検証済み | ODBCクライアントバージョン2.4.6.1015 |
ドライバーの詳細
Alteryx Google BigQuery ツールで接続を設定する前に、Google Cloud の管理者によるアクションが必要になる場合があります。
Google BigQueryでは、認証方法としてOAuthが必要です。当社では、Simba ODBCドライバー(DSNを経由)、またはAlteryx (DCMを使用)で、OAuthをサポートしています。
接続に使用する Alteryx ツール
標準的なワークフロー処理
インデータベースのワークフロー処理
注記
インデータベースのワークフロー処理は、DCMを使用する場合でのみサポートされます。
InDB読み取り接続と書き込み接続に使用されるGoogle BigQueryデータセットは、同じである必要があります。
重要
ハイフンなどの特殊文字を含むプロジェクト、データセット、テーブルは、引用符で囲む必要があります。詳細については、「Google BigQuery Error with hyphens in SQL Query (SQLクエリのハイフンによる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のJSONキーファイル認証
Designerバージョン2024.1では、DCMを使用してGoogle BigQueryでサービスアカウントを認証することがこれまで以上に簡単になりました。
Google BigQuery接続を選択して、使用可能な認証方法のリストからJSONキーファイル認証を見つけます。
JSONキーファイルへのパスを指定します。
Google BigQueryデータに接続します。
Google BigQueryアカウントに対してJSONキーファイル認証を設定する方法の詳細については、BigQueryガイドを参照してください。
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 ドキュメント を参照してください。
追加情報
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 がストリーミングバッファから行を返す場合があります。このとき、進行状況インジケーターのパーセンテージは更新されず、警告が表示されます。
既知の制限
ネストされた繰り返しのレコードの最大の深さ
ネストされた繰り返しのレコードは、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よりも前のバージョンでは、バルクローダーは日付を文字列としてロードします。