inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

5-1. Google Analytics 4, Firebase 소개 및 앱 생애주기

array 등

해결된 질문

72

데붕싸

작성한 질문수 1

0

안녕하세요 데이터분석가로 근무하고 있는 수강생입니다.

array 등과 같은 기능이 저는 다소 생소한데 자주 쓰는 문법인지 궁금합니다ㅣ

sql Google-Analytics firebase google-sheets bigquery 카카오공채-서비스

답변 2

1

카일스쿨

안녕하세요!

배열 함수를 자주 접하신 적이 없으면 생소할 수 있습니다. 우선 BigQuery의 Array 데이터는 Google Analytics4나 Firebase를 사용하는 회사에서는 자주 볼 수 있습니다. GA4나 Firebase를 배열로 데이터를 저장하기 때문에 이걸 사용하지 않으면 데이터를 풀 수 없습니다.

 

그럼 BigQuery만의 특수한 문법이 아닌가?라고 생각할 수 있는데, 전통적인 OLTP에서는 배열 데이터가 없기도 합니다. 예를 들어 MySQL에서는 배열 함수가 없고, JSON 형태를 활용해서 만들어야 합니다. 예시는 링크에서 확인할 수 있습니다.

 

그 외에 PostgreSQL에는 배열이 있습니다. BigQuery에서 사용하는 ARRAY 관련 함수를 볼 수 있습니다.

공식 문서 : https://www.postgresql.org/docs/current/arrays.html

 

데이터 웨어하우스(DW) 계열에서는 배열 데이터가 많이 활용됩니다. 여러 데이터를 저장해야 할 때, 배열 형태로 데이터를 저장하곤 합니다(파이썬의 List처럼) 그리고 그걸 활용할 때 배열을 사용하게 됩니다.

 

Snowflake 문서 : https://docs.snowflake.com/ko/sql-reference/functions/array_agg

Spark 문서 : https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.array.html

 

데이터 저장하는 형태가 복잡해지면 배열은 한번 쯤은 경험하게 되는 것 같아요. 사용자 앱 로그 데이터를 저장할 때는 배열 형태로 저장하는 것이 수월한 경우도 꽤 있었어요.

 

파이썬에서도 Dict, List가 존재하는데 데이터를 어떻게 저장해야 하느냐에 따라 적절하게 활용하곤 합니다. 데이터베이스, 데이터 웨어하우스에도 목적에 따라 적절하게 배열이나 파이썬의 딕셔너리처럼 저장하고 싶을 때 강의의 ARRAY, STRUCT를 사용한다고 생각하시면 될 것 같아요.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 데붕싸님.

ARRAY 등과 같은 데이터 구조는 BigQuery와 SQL에서 매우 유용한 기능입니다. 특히, BigQuery는 반정형 데이터 형식을 지원하는데, 이때 ARRAY와 STRUCT를 활용하면 데이터를 효율적으로 다룰 수 있습니다.

  • ARRAY: 여러 개의 값을 하나의 컬럼에 저장할 수 있습니다. 예를 들면, 한 개의 영화에 여러 명의 배우가 출연할 때, 배우 목록을 ARRAY로 관리할 수 있습니다.
  • STRUCT: ARRAY 내에서 각각의 요소가 여러 속성을 가질 때 사용됩니다. 예를 들어, 배우의 이름과 역할을 함께 저장해야 한다면 STRUCT가 유용합니다.

이러한 기능은 특히 JSON과 같은 데이터를 처리할 때 아주 유용하며, 데이터를 복잡한 구조로 나눌 필요 없이 하나의 컬럼에 저장하고 조작할 수 있습니다.

아래의 링크를 통해 ARRAY와 관련된 더 자세한 사용 방법을 확인하실 수 있습니다:

이 자료들이 데붕싸님의 데이터 분석 업무에 도움이 되기를 바랍니다. 질문에 대해 추가적으로 궁금한 점이 있으시다면, 망설이지 마시고 또 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

최종 과제 제출

0

114

3

BigQuery 활용편 18강 질문있습니다!

0

95

1

리텐션 공부하다가 궁금한게 생겨 질문드립니다

0

95

2

안녕하세요 강사님 코호트 쿼리 공부하다가 의문점이 생겨서 문의드립니다

0

91

2

biquery 테이블 생성 오류 이슈

0

67

2

동일하게 쿼리를 작성했는데 화면과 다른 값이 나옵니다

0

83

2

[과제] 퍼널 PIVOT 테이블 작성하기

0

77

2

N day 리텐션 쿼리 관련 질문

0

70

2

이동평균 계산 시 order by 기본값은 뭔가요?

0

79

2

윈도우 연습문제 1번 질문

0

76

1

user_id에 NULL이 나오는데 정상인가요?

0

82

2

3-13 리텐션 과제 제출

0

108

2

최종 과제 제출

0

140

3

weekly retention 구하기 과제

0

100

2

1-9. 피벗 쿼리 작성

0

89

2

app_logs 테이블 생성 문제

0

84

2

Weekly Retention 구하기 완성하였습니다.

0

86

2

[과제] 퍼널 쿼리(피벗테이블 적용) 작성 완료

0

118

2

3-7 Weekly, Monthly Retention 쿼리 작성

0

96

2

정성 데이터 분석 방법 문의

0

177

1

최종 과제 제출

0

112

3

1-6 예시 문제 풀이

0

72

2

최종과제 제출

0

156

2

3-13. 리텐션 과제

0

215

3