강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

데붕싸님의 프로필 이미지
데붕싸

작성한 질문수

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

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

array 등

해결된 질문

작성

·

19

0

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

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

답변 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 인턴입니다. 데붕싸님.

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

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

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

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

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

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

데붕싸님의 프로필 이미지
데붕싸

작성한 질문수

질문하기