Google BigQuery

まとめ

項目 説明
リリース状態 一般提供
製品 Power BI (セマンティック モデル)
Power BI (データフロー)
ファブリック (データフロー Gen2)
Power Apps (データフロー)
Customer Insights (データフロー)
サポートされている認証の種類 Organizational account
サービス アカウント

Note

デプロイ スケジュールにより、またホスト固有の機能があることにより、ある製品に存在する機能が他の製品にはない場合があります。

Note

2021 年 7 月より、Google は埋め込みブラウザ フレームワークからの Google アカウントへのサインインのサポートを中止しました。 この変更により、Google へのサインインをサポートするには、Power BI Desktop のバージョンを 2021 年 6 月以降に更新する必要があります。

前提条件

Google BigQuery にサインインするには、Google アカウントまたは Google サービス アカウントが必要です。

サポートされる機能

  • インポート
  • DirectQuery (Power BI セマンティック モデル)

Power Query Desktop から Google BigQuery データへの接続

Power Query Desktop から Google BigQuery に接続するには、次の手順を実行します。

  1. データの取得エクスペリエンスで [Google BigQuery] を選択します。 Power Query Desktop でのデータの取得エクスペリエンスは、アプリによって異なります。 アプリの Power Query Desktop データの取得エクスペリエンスの詳細については、「データを取得する場所」を参照してください。

  2. 詳細オプションを使用したい場合は、[詳細オプション] を選択します。 そうでない場合は、[OK] を選択して続行します。 詳細情報: 詳細オプションを使用して接続

    [詳細設定] オプションを選択した初期ダイアログ ボックスを示す画像。

  3. Google BigQuery コネクタでは、組織アカウントまたはサービス アカウントによるサインインを使った接続がサポートされています。 この例では、組織アカウントを使ってサインインします。 [サインイン] を選んで続行します。

    Google BigQuery にサインインします。

    Google サービス アカウントを使ってサインインすることもできます。 この場合は、[Service Account Login]\(サービス アカウント ログイン\) を選択し、サービス アカウント メールとサービス アカウント JSON キー ファイル コンテンツを入力します。 次に、 [接続](Connect) を選択します。

  4. [Google アカウントでサインイン] ダイアログが表示されます。 Google アカウントを選び、Power BI Desktop への接続を承認します。

    Google にサインインします。

  5. サインインしたら、[接続] を選んで続行します。

    Google BigQuery データに接続します。

  6. 正常に接続した後、[ナビゲーター] ウィンドウが表示され、サーバーで利用可能なデータが表示されます。 ナビゲーターでデータを選びます。 次に、[データの変換] を選んで Power Query のデータを変換するか、[読み込む] を選んで Power BI Desktop のデータを読み込みます。

    Google BigQuery データをデスクトップ アプリに読み込んでいる Power Query ナビゲーターの画像。

Power Query Online から Google BigQuery データへの接続

Power Query Online から Google BigQuery に接続するには、次の手順を実行します。

  1. データの取得エクスペリエンスで [Google BigQuery] オプションを選択します。 Power Query Online のデータの取得エクスペリエンスに到達する方法は、アプリによって異なります。 Power Query Online のデータの取得エクスペリエンスに到達する方法の詳細については、「データを取得する場所」を参照してください。

    Google BigQuery コネクタに重点を置いた [データの取得] ダイアログのスクリーンショット。

  2. [Google BigQuery] データベースのダイアログで、新しい接続を作成するか、既存の接続を選択する必要がある場合があります。 オンプレミスのデータを使用する場合は、オンプレミス データ ゲートウェイを選択します。 その後、サインイン を選択します。

    [サインイン] ダイアログ ボックスの画像。

  3. [Google アカウントでサインイン] ダイアログが表示されます。 Google アカウントを選び、接続を承認します。

    Note

    [サインイン] ダイアログ ボックスには、サインインした後も引き続き Power BI Desktop に留まると表示されますが、実際はオンライン アプリに転送されます。

    Google サインイン ダイアログの画像。

  4. 詳細オプションを使用したい場合は、[詳細オプション] を選択します。 詳細情報: 詳細オプションを使用して接続

  5. サインインしたら、[次へ] を選んで続行します。

    正常にサインインしたユーザーの画像。

  6. 正常に接続した後、[ナビゲーター] ウィンドウが表示され、サーバーで利用可能なデータが表示されます。 ナビゲーターでデータを選びます。 次に、[次へ] を選択して Power Query のデータを変換します。

    Google BigQuery データをオンライン アプリに読み込んでいる Power Query ナビゲーターの画像。

詳細オプションを使用して接続する

Power Query Desktop と Power Query Online のどちらにも、必要に応じてクエリに追加できる一連の詳細オプションが用意されています。

Power Query Desktop で使用できる詳細オプションの表示。

次の表に、Power Query Desktop と Power Query Online で設定できるすべての詳細オプションを示します。

詳細オプション 説明
課金プロジェクト ID Power Query がクエリを実行する対象のプロジェクト。 アクセス許可と課金は、このプロジェクトに関連付けられます。 請求プロジェクト ID が指定されていない場合、デフォルトでは、Google API によって返された最初の利用可能なプロジェクトが使用されます。
Storage API の使用 Google BigQuery の Storage API の使用を有効にするフラグ。 このオプションは既定で true に設定されています。 Storage API を使わず、代わりに REST API を使う場合は、このオプションを false に設定できます。
接続タイムアウト期間 接続が完了するまでに Power Query が待機する時間を制御する標準の接続設定 (秒単位)。 接続が 15 秒 (既定値) 以内に完了しない場合は、この値を変更できます。
コマンド タイムアウト期間 クエリが完了して結果が返されるまでに Power Query が待機する時間。 既定値は、ドライバーの既定値によって異なります。 別の値 (分単位) を入力して、より長く接続を開いたままにすることができます。
プロジェクト ID ネイティブ クエリを実行する対象のプロジェクトです。 このオプションは Power Query Desktop でのみ使用できます。
SQL ステートメント 詳細については、「ネイティブ データベース クエリを使用してデータベースからデータをインポートする」を参照してください。 このバージョンのネイティブ データベース クエリ機能では、Database.Schema.Table という形式の完全修飾テーブル名を使用する必要があります (例: SELECT * FROM DEMO_DB.PUBLIC.DEMO_TABLE)。 このオプションは Power Query Desktop でのみ使用できます。

必要とする詳細オプションを選択したら、Power Query デスクトップの [OK] または Power Query Online の [次へ] を選択して、Google BigQuery データに接続します。

制限と考慮事項

ここでは、Google BigQuery コネクタの制限事項または考慮事項について説明します。

Power BI Desktop での Google BigQuery への接続

Power BI で Google BigQuery コネクタを使用する場合は、いくつかの制限と考慮事項に留意する必要があります。

コネクタの可用性

Google BigQuery コネクタは、Power BI Desktop および Power BI サービスで使用できます。 Power BI サービスでは、Power BI から Google BigQuery へのクラウド間接続を使用してコネクタにアクセスできます。

「アクセスが拒否されました」エラー

Power BI Desktop から Google BigQuery に接続しようとすると、次のエラー メッセージが表示される場合があります。

Datasource.Error: ODBC: ERROR [HY000][Microsoft][BigQuery] (100) Error interacting with REST API: Access Denied: Project <project name>: The user <user name> bigquery.jobs.create permissions in project <project name>.

この場合、Power Query の [接続設定] の [請求プロジェクト] 詳細オプションに請求プロジェクト ID を入力する必要がある場合があります。

さらに、ゲートウェイを使用して Power BI サービスでレポートを作成する場合も、このエラーが発生する可能性があります。 この場合、Power Query エディターまたは Power Query 数式バーを使用して、接続の M コードに請求プロジェクト ID を手動で含める必要があります。 次に例を示します。

Source = GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"])

入れ子になったフィールド

パフォーマンス上の考慮事項を最適化するために、Google BigQuery では非正規化、フラット化、入れ子になった場合の大規模なデータ セットがうまく処理されます。

Google BigQuery コネクタでは、入れ子になったフィールドがサポートされており、JSON 形式のテキスト列として読み込まれます。

Google BigQuery の入れ子になったフィールドのサポート。

ユーザーは [データの変換] を選択した後、Power Query エディターの JSON 解析機能を使用してデータを抽出する必要があります。

  1. [変換] リボン タブの [テキスト列] カテゴリで、[解析][JSON] の順に選択します。
  2. [列の展開] オプションを使って JSON レコード フィールドを抽出します。

Google サービス アカウントの設定

Google サービス アカウントの設定または使用の詳細については、Google ドキュメントの「サービス アカウント キーの作成と管理」を参照してください。

Google サービス アカウントを使用した認証

Power BI Desktop で Google サービス アカウントを介して認証する場合、コネクタで必要となる特定の資格情報の形式があります。

  • サービス アカウント メール: メール形式である必要があります
  • サービス アカウント JSON キー ファイル コンテンツ: この JSON キーをダウンロードしたら、ファイルからすべての改行を削除して、コンテンツが 1 行に含まれるようにする必要があります。 JSON ファイルをそのような形式にしたら、このフィールドにコンテンツを貼り付けます。

Power BI サービスまたは Power Query Online で Google サービス アカウントを介して認証する場合、ユーザーは「基本」認証を使用する必要があります。 [ユーザー名] フィールドは上の [サービス アカウント メール] フィールドにマップされ、[パスワード] フィールドは上の [Service Account JSON key file contents]\(サービス アカウント JSON キー ファイル コンテンツ\) フィールドにマップされます。 各資格情報の形式要件は、Power BI Desktop、Power BI サービス、Power Query Online の両方で同じです。

Google BigQuery Storage API を使用して認証できない

Google BigQuery コネクタでは、既定で Google BigQuery Storage API が使用されます。 この機能は、UseStorageApi という詳細オプションによって制御されます。 きめ細かいアクセス許可を使用すると、この機能に問題が発生する場合があります。 このシナリオでは、次のエラー メッセージが表示されたり、クエリからデータを取得できなかったりする可能性があります。

ERROR [HY000] [Microsoft][BigQuery] (131) Unable to authenticate with Google BigQuery Storage API. Check your account permissions

この問題を解決するには、BigQuery Storage API のユーザー アクセス許可を適切に調整します。 BigQueryStorage API を使ってデータに正しくアクセスするには、次のストレージ API アクセス許可が必要です。

  • bigquery.readsessions.create: BigQuery Storage API を介して新しい読み取りセッションを作成します。
  • bigquery.readsessions.getData: BigQuery Storage API を介して読み取りセッションからデータを読み取ります。
  • bigquery.readsessions.update: BigQuery Storage API を介して読み取りセッションを更新します。

通常、これらのアクセス許可は BigQuery.User ロールで提供されます。 詳細については、Google BigQuery の事前定義ロールとアクセス許可に関するページを参照してください

上記の手順で問題が解決しない場合は、BigQuery Storage API を無効にできます。

DirectQuery モードでは DateTime 型データを使用できません

DateTime 型が Direct Query を通じてサポートされないという既知の問題があります。 DateTime 型の列を選択すると、「無効なクエリ」エラーまたは視覚的なエラーが発生するでしょう。

テーブル名と同じ名前の列のクエリに関する制限事項

テーブル名と同じ名前の列に対してクエリを実行すると、BigQuery は、指定された列ではなく、テーブル内のすべての列を含む struct としての列と解釈します。 たとえば、 SELECT debug FROM dataset.debug は、指定したデバッグ列ではなく、デバッグ テーブル内のすべての列を含む一つのstruct を返します。 通常、このビヘイビアーは直感的ではなく、フィックスプログラムが調査されています。 回避策は 3 つあります:

  • 回避策 1: 列名と競合しないビューでテーブルをラップする—CREATE VIEW dataset.new_view AS SELECT * FROM dataset.debug
  • 回避策 2: テーブル名と競合しないように列の名前を変更する—ALTER TABLE dataset.debug RENAME COLUMN debug to new_debug
  • 回避策 3: 競合列を参照するために table.column を使用するように選択クエリを変更する—SELECT debug.debug FROM dataset.debug