sales_transaction_header와 sales_transaction_line이라는 두 개의 큰 테이블은 긴밀하게 연결되어 있으며, 로드 후에는 변경할 수 없고 자주 조인됩니다. 분석 성능을 최적화하려면 BigQuery에서 이들을 어떻게 모델링해야 할까요?
정답 선택
옵션을 탭하여 정답을 확인하세요.
정답: sales_transaction_header 정보를 행으로, sales_transaction_line 행을 중첩되고 반복되는 필드로 포함하는 sales_transaction 테이블을 생성합니다..
이것이 정답인 이유
정답은 중첩 및 반복 필드를 사용하는 것입니다. BigQuery는 중첩 및 반복 필드를 통해 비정규화된 데이터를 효율적으로 처리하도록 설계되었습니다. salestransactionheader 정보를 부모 행으로, salestransactionline 정보를 중첩된 반복 필드로 모델링하면 조인 없이 모든 관련 데이터를 단일 테이블에서 쿼리할 수 있어 분석 성능이 크게 향상됩니다. 다른 옵션들은 다음과 같은 이유로 최적이 아닙니다. salestransactionheader 데이터를 각 라인에 대해 중복하는 것은 데이터 중복을 야기하고 저장 공간을 비효율적으로 사용하며, 데이터 일관성 문제를 일으킬 수 있습니다. JSON 데이터 유형으로 저장하는 것은 BigQuery의 최적화된 컬럼형 스토리지 이점을 충분히 활용하지 못하며, JSON 파싱 오버헤드로 인해 쿼리 성능이 저하될 수 있습니다. 별도의 테이블을 생성하고 조인하는 것은 BigQuery에서 조인 비용이 발생하므로, 자주 조인되는 대규모 테이블의 경우 성능 병목 현상이 발생할 수 있습니다. WHERE 절의 순서는 조인 성능에 큰 영향을 미치지 않습니다.
끝없는 정답 찾기 없이 시험 합격
이 시험에 대한 모든 검증된 문제와 설명을 한곳에서 얻고, 준비 시간을 몇 시간 절약하세요. 1,000개 이상의 자격증 · 20개 이상의 언어 · 무료로 시작.
더 빠르게 시험 합격 → 카드 필요 없음