유혜연님의 프로필 사진

유혜연

.

[빅쿼리의 데이터 구조 이해하기] 빅쿼리에서의 비정규화 “비정규화는 이전에 정규화된 관계형 데이터 세트의 읽기 성능을 높이기 위한 일반적인 전략입니다. BigQuery에서 데이터를 비정규화할 때는 중첩(nested)되고 반복(repeated)되는 입력란을 사용하는 것이 좋습니다.” 중첩 및 반복 “BigQuery에서는 일반적으로 중첩된 스키마를 STRUCT 객체의 ARRAY으로 지정합니다. 다음 쿼리에 표시된 것처럼 UNNEST 연산자를 사용하여 중첩된 데이터를 평면화합니다.” SELECT * FROM UNNEST(   [     STRUCT('001' AS Order_Id, ['A1', 'B1'] AS Item),     STRUCT('002' AS Order_Id, ['A1', 'C1'] AS Item)   ] ); Order_Id | Item 001 A1 B1 002 A1 C1 "반복되는 중첩 필드는 BigQuery에 비정규화된 데이터를 효율적으로 저장하는 방법입니다. 예를 들어 고객 주문에 여러 항목이 있다고 가정해 보겠습니다. 항목에는 제품 이름, 수량, 총 비용 등의 정보가 포함되어 있습니다. 기존 RDBMS에서 Orders 테이블과 OrderItems 테이블을 만들고 외래 키와 조인할 수 있습니다." "BigQuery에서 항목을 Orders 테이블 내 중첩 필드의 배열로 나타낼 수 있습니다. 반복되는 중첩 필드가 있는 단일 테이블에서 쿼리를 실행하는 것이 여러 테이블을 조인하는 것보다 효율적인 경우가 많습니다."

중첩 및 반복 필드 사용 | BigQuery | Google Cloud

Google Cloud Blog

중첩 및 반복 필드 사용 | BigQuery | Google Cloud

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 11월 26일 오후 2:20

댓글 0