Google BigQuery에 연결된 Firebase Analytics로 분석을 수집합니다.Google BigQuery와 다른 열의 키 값 쿼리
내가 BigQuery의에서 다음 데이터가 (불필요한 열/행이 중단되어이 데이터 세트는 https://bigquery.cloud.google.com/table/firebase-analytics-sample-data:ios_dataset.app_events_20160607?tab=preview과 유사) :
- 이벤트 :
| event_dim.name | event_dim.params.key | event_dim.params.value.string_value | |----------------|----------------------|-------------------------------------| | read_post | post_id | p_100 | | | group_id | g_1 | | | user_id | u_1 | | open_group | post_id | p_200 | | | group_id | g_2 | | | user_id | u_1 | | open_group | post_id | p_300 | | | group_id | g_1 | | | user_id | u_3 |
내가 다음 데이터를 조회 할 이름
- 사용자 ID
- 그룹 ID
나는 다음과 같은 쿼리를 시도 :
SELECT
event_dim.name,
FIRST(IF(event_dim.params.key = "user_id", event_dim.params.value.string_value, NULL)) WITHIN RECORD user_id,
FIRST(IF(event_dim.params.key = "group_id", event_dim.params.value.string_value, NULL)) WITHIN RECORD group_id
FROM
[xxx:xxx_IOS.app_events_20161102]
LIMIT
1000
위의 질의에 대한 문제가 WITHIN
수정과 SELECT
문은 결과의 목록을 반환하기 때문에 집계 함수 FIRST
가 잘못된 결과를 제공하는 것입니다.함수는 첫 번째 행의 경우에만 올바른 결과를 제공합니다. ("표시 옵션"에서 "사용 레거시 SQL을"취소) standard SQL를 사용
그래, 완벽하게 작동하는 것 같습니다. 데이터는 미리보기와 다른 순서로 표시되지만 큰 문제는 아닙니다. 이 쿼리에 여러 테이블 (동일한 스키마 사용)을 추가 할 수있는 가능성을 알고 계십니까? – Timon
물론, [와일드 카드 테이블] (https://cloud.google.com/bigquery/docs/wildcard-tables)에 관심이 있거나 'FROM MyTable' 대신'FROM (SELECT * FROM MyTable) UNION ALL SELECT *에서 MyOtherTable UNION ALL ...)'. [마이 그 레이션 가이드] (https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#comma_operator_with_tables)에는 UNION ALL과 함께 몇 가지 예가 있습니다. –
아아, 와일드 카드 테이블에 대해 방금 읽었습니다. 그게 좋은 기능입니다! 고마워요! – Timon