質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1722閲覧

pythonからBigQueryへアクセスするとエラーになってしまいます。

tqtwyw

総合スコア0

BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/05 11:42

現在、GA360とBigQuery連携しており、GA360のローデータをBQに吐き出しています。そのデータに対して
pythonでサービスアカウント認証して、BigQueryへsqlを実行して特定のテーブルからデータを引っ張ってくること自体は全然問題なくできています。

ローデータをunnestした結果が入っているテーブルを
select * from テーブル名
でちゃんとデータを引っ張ってくることができるのは確認済みです。

しかしなぜか、unnestした結果のテーブルを参照しにいく場合は問題なくデータをpythonにとってくることができるのですが、
pythonから直接GA360で吐き出したローデータテーブルに対して、unnest用のsqlをかましてデータをとってきたいのですが、うまくいかず、以下のエラーが出てしまいます。

raise GenericGBQException("Reason: {0}".format(ex))
pandas_gbq.gbq.GenericGBQException: Reason: 400 Unrecognized name: visitorId at [1:19]

pythonから実行しているSQL
"SELECT
visitorId,
fullVisitorId,
clientId,
visitNumber,
visitId,
visitStartTime,
PARSE_DATE('%Y%m%d', date) AS hit_date,
totals.pageviews,
totals.timeOnSite,
trafficSource.referralPath,
trafficSource.campaign,
trafficSource.source,
trafficSource.medium,
trafficSource.keyword,
trafficSource.adContent,
device.browser,
device.browserVersion,
device.operatingSystem,
device.operatingSystemVersion,
device.isMobile,
device.flashVersion,
device.javaEnabled,
device.language,
device.screenColors,
device.screenResolution,
geoNetwork,
geoNetwork.continent,
geoNetwork.subContinent,
geoNetwork.country,
geoNetwork.region,
geoNetwork.metro,
geoNetwork.city,
geoNetwork.cityId,
geoNetwork.networkDomain,
geoNetwork.latitude,
geoNetwork.longitude,
geoNetwork.networkLocation,
hits.hitNumber,
hits.time,
TIMESTAMP_SECONDS(visitStartTime + CAST((hits.time / 1000) AS int64)) AS hit_timestamp,
hits.hour,
hits.minute,
hits.isSecure,
hits.isInteraction,
hits.referer,
hits.page.pagePath,
hits.page.hostname,
hits.page.pageTitle,
hits.page.searchKeyword,
hits.page.searchCategory,
hits.transaction.transactionId AS hit_transactionId,
hits.transaction.transactionRevenue,
hits.transaction.transactionTax,
hits.transaction.transactionShipping,
hits.transaction.affiliation,
hits.transaction.currencyCode AS hit_transaction_currencyCode,
hits.transaction.localTransactionRevenue,
hits.transaction.localTransactionTax,
hits.transaction.localTransactionShipping,
hits.item.transactionId,
hits.item.productName,
hits.item.productCategory,
hits.item.productSku,
hits.item.itemQuantity,
hits.item.itemRevenue,
hits.item.currencyCode,
hits.item.localItemRevenue,
hits.contentInfo.contentDescription,
hits.appInfo.name,
hits.appInfo.version,
hits.appInfo.id,
hits.appInfo.installerId,
hits.exceptionInfo.description,
hits.exceptionInfo.isFatal,
hits.eventInfo.eventCategory,
hits.eventInfo.eventAction,
hits.eventInfo.eventLabel,
hits.eventInfo.eventValue,
(SELECT MAX(IF(index=1, value, NULL)) FROM UNNEST(hits.customDimensions)) AS dimension1,
(SELECT MAX(IF(index=2, value, NULL)) FROM UNNEST(hits.customDimensions)) AS dimension2,
(SELECT MAX(IF(index=3, value, NULL)) FROM UNNEST(hits.customDimensions)) AS dimension3,
(SELECT MAX(IF(index=4, value, NULL)) FROM UNNEST(hits.customDimensions)) AS dimension4,
(SELECT MAX(IF(index=5, value, NULL)) FROM UNNEST(hits.customDimensions)) AS dimension5,
(SELECT MAX(IF(index=1, value, NULL)) FROM UNNEST(hits.customMetrics)) AS metrics1,
(SELECT MAX(IF(index=2, value, NULL)) FROM UNNEST(hits.customMetrics)) AS metrics2,
(SELECT MAX(IF(index=3, value, NULL)) FROM UNNEST(hits.customMetrics)) AS metrics3,
(SELECT MAX(IF(index=4, value, NULL)) FROM UNNEST(hits.customMetrics)) AS metrics4,
(SELECT MAX(IF(index=5, value, NULL)) FROM UNNEST(hits.customMetrics)) AS metrics5,
hits.type
FROM
{0}.{1}.{2},
UNNEST(hits) AS hits
ORDER BY hit_timestamp DESC, fullVisitorId DESC"
※ {0}はプロジェクト名、{1}はデータベース名、{2}はテーブル名が入ります。

visitorIdも指定しており、問題ないと思うのですが、理由が分からず困っています。
わかる方いらっしゃいましたら、至急教えていただけると幸いです。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問