시작하기 전에
- 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
- 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
- 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.
BigQuery는 Google의 완전 관리형, 노옵스(NoOps), 저비용 분석 데이터베이스입니다. BigQuery를 사용하면 관리할 인프라나 데이터베이스 관리자가 없어도 테라바이트 단위의 대규모 데이터를 쿼리할 수 있습니다. BigQuery는 SQL을 사용하므로 사용한 만큼만 지불하는 모델의 장점을 활용할 수 있습니다. BigQuery는 데이터를 분석하여 의미 있고 유용한 정보를 찾는 데 집중할 수 있게 해줍니다.
이 실습에서 사용할 데이터 세트는 Google Merchandise Store의 Google 애널리틱스 레코드 수백만 개가 BigQuery에 로드된 전자상거래 데이터 세트입니다. 이 실습에서는 해당 데이터 세트의 복사본에서 사용 가능한 필드와 행을 탐색하여 유용한 정보를 파악합니다.
이 실습에서는 파티션을 나눈 데이터 세트를 쿼리하고, 쿼리 성능 개선과 비용 절약을 위해 데이터 세트 파티션을 직접 만듭니다.
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
시크릿 창을 사용하여 Qwiklabs에 로그인합니다.
실습 사용 가능 시간(예: 1:15:00)을 참고하여 해당 시간 내에 완료합니다.
일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.
준비가 되면 실습 시작을 클릭합니다.
실습 사용자 인증 정보(사용자 이름 및 비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.
Google Console 열기를 클릭합니다.
다른 계정 사용을 클릭한 다음, 안내 메시지에 이 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.
약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
Cloud Console의 BigQuery에 오신 것을 환영합니다라는 메시지 상자가 열립니다. 이 메시지 상자에서는 빠른 시작 가이드 링크 및 UI 업데이트 목록을 확인할 수 있습니다.
먼저 테이블을 저장할 데이터 세트를 만듭니다.
데이터 세트 ID를 ecommerce로 설정합니다. 다른 옵션(데이터 위치, 기본 테이블 만료)은 기본값으로 유지합니다.
데이터 세트 만들기를 클릭합니다.
파티션을 나눈 테이블은 파티션이라고 하는 세그먼트로 분할된 테이블로, 데이터를 보다 쉽게 관리하고 쿼리할 수 있게 해줍니다. 큰 테이블을 작은 파티션으로 나누면 쿼리 성능을 높일 수 있으며 쿼리에서 읽는 바이트 수를 줄여 비용을 제어할 수 있습니다.
이제 새 테이블을 만든 다음 날짜 또는 타임스탬프 열을 파티션으로 바인딩합니다. 그 전에 먼저 파티션을 나누지 않은 테이블의 데이터를 살펴보겠습니다.
쿼리는 결과 5개를 반환합니다.
이번에는 쿼리를 수정하여 2018년 방문자를 살펴보겠습니다.
쿼리 결과에 이 쿼리에서 처리할 데이터의 양이 표시됩니다.
이번에도 쿼리는 데이터 1.74GB를 처리하지만 결과는 반환되지 않습니다. 왜일까요? 쿼리 엔진은 데이터 세트의 모든 레코드를 검사하여 WHERE 절의 날짜 일치 조건을 충족하는지를 확인해야 하기 때문입니다. 즉, 각 레코드를 확인해 '20180708' 조건을 기준으로 날짜를 비교해야 합니다.
또한 위와 같이 쿼리에 LIMIT 5를 추가하면 처리되는 총 데이터 양이 줄어든다는 오해를 하는 경우가 흔한데, 실제로는 그렇지 않습니다.
매번 전체 데이터 세트를 스캔하여 WHERE 조건을 기준으로 행을 비교하는 방식을 사용하는 경우 시간이 많이 낭비됩니다. 특히 다음과 같은 특정 기간 동안의 레코드만 확인하면 되는 경우에는 이러한 방식이 비효율적입니다.
이번에는 위의 쿼리에서처럼 전체 데이터 세트를 검사하여 특정 날짜 필드를 필터링하는 대신, 날짜를 기준으로 파티션을 나눈 테이블을 설정해 보겠습니다. 이렇게 하면 쿼리와 관련이 없는 파티션의 레코드 스캔을 완전히 무시할 수 있습니다.
이 쿼리에는 새로운 옵션인 'PARTITION BY'가 필드로 포함되어 있습니다. 파티션에 사용할 수 있는 두 가지 옵션은 DATE와 TIMESTAMP가 있습니다. PARSE_DATE 함수는 문자열로 저장된 날짜 필드에서 해당 날짜를 파티셔닝에 적합한 DATE 유형으로 가져오는 데 사용됩니다.
ecommerce 데이터 세트를 클릭하고 새 partiton_by_day 테이블을 선택합니다.
세부정보 탭을 클릭합니다.
테이블 정보 섹션에 다음이 표시되는지 확인합니다.
이번에는 쿼리한 데이터의 일부인 최대 25KB(0.025MB)의 데이터가 처리됩니다.
This query will process 0 B when run이 표시됩니다.
처리되는 바이트가 0바이트인 이유는 무엇일까요?
자동으로 만료되는 파티션을 나눈 테이블을 사용하면 데이터 개인 정보 보호법을 준수하며 불필요한 스토리지 사용(프로덕션 환경에서 해당 요금이 청구됨)을 방지할 수 있습니다. 데이터 롤링 기간을 만들려면 사용을 완료한 파티션은 표시되지 않도록 만료일을 추가합니다.
왼쪽 패널에서 + 추가를 클릭하고 공개 데이터 세트를 선택합니다.
GSOD NOAA를 검색한 다음 데이터 세트를 선택합니다.
데이터 세트 보기를 클릭합니다.
파티션이 나뉘어 있지 않으며 수동으로 샤딩해야 하는 noaa_gsod 데이터 세트의 테이블을 스크롤합니다.
다음으로, 아래 쿼리를 복사하여 제목 없는 쿼리에 붙여넣습니다.
TABLE_SUFFIX 필터에서 참조하는 테이블 수를 제한하기 위해 FROM 절에 테이블 와일드 카드 *가 사용되었습니다
LIMIT 10을 추가했지만 아직 파티션이 없으므로 스캔되는 총 데이터 양(약 141.6MB)은 줄어들지 않습니다.
실행을 클릭합니다.
날짜 형식이 올바르게 지정되었으며 강수량 필드에 0이 아닌 값이 표시되는지 확인합니다.
이전 쿼리를 수정하여 다음 사양으로 테이블을 만들어 보세요.
완성된 쿼리는 다음과 같습니다.
60일 전부터 오늘까지의 데이터만 저장되는지 확인하려면 DATE_DIFF 쿼리를 실행하여 파티션 사용 기간(60일이 지나면 만료되도록 설정됨)을 가져옵니다.
아래 쿼리는 강수량이 매우 많은 일본 와카야마 NOAA 기상 관측소의 평균 강수량을 추적합니다.
가장 오래된 파티션부터 표시되도록 ORDER BY 절을 업데이트합니다. 이를 통해 날짜를 확인할 수 있습니다.
BigQuery에서 파티션을 나눈 테이블을 만들고 쿼리했습니다.
실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
한 번에 실습 1개만 가능
모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.