시작하기 전에
- 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
- 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
- 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.
Combine the data and export Parquet files
/ 35
Query data in BigQuery
/ 30
Query data in Dataproc and Spark
/ 35
클라우드 데이터 분석은 빠르게 발전하는 분야이므로 클라우드 데이터 분석가는 효과적인 업무를 위해 새로운 플랫폼과 기술을 지속적으로 학습해야 합니다. 이를 위한 방법으로 BigQuery 및 Dataproc과 같은 다양한 플랫폼을 비교하는 것이 좋습니다.
BigQuery와 Dataproc은 모두 클라우드 데이터 처리 플랫폼이지만 데이터를 분석할 때 서로 다른 데이터 처리 엔진, SQL 언어, 개발 환경을 사용합니다.
BigQuery는 대규모 데이터 세트에 대한 대화형 쿼리에 적합한 데이터 웨어하우스입니다. 사용하기 쉽고 다양한 데이터 분석 작업을 처리할 수 있습니다.
Dataproc은 대규모 데이터 세트에서 일괄 처리 작업을 실행하는 데 적합한 관리형 Hadoop 및 Spark 서비스입니다. BigQuery보다 유연하지만 설정 및 사용이 더 복잡할 수 있습니다.
BigQuery와 Dataproc은 모두 다른 Google Cloud 서비스와 통합되어 있어 이들 간에 데이터를 쉽게 이동할 수 있으며, 데이터 레이크 소스를 쉽게 검색할 수 있습니다.
이 실습에서는 두 CSV 파일의 데이터를 하나의 Parquet 파일로 결합하는 작업을 진행하게 됩니다. 그런 다음 결합된 데이터를 사용하여 BigQuery로 실행한 분석과 동일한 데이터를 사용하여 Dataproc 및 Spark로 실행한 분석을 비교합니다.
TheLook eCommerce는 오프라인 매장에서 온라인 주문의 반품을 접수하는 프로그램을 시범 운영하고 있습니다. 이 프로그램을 통해 고객이 상품을 더 쉽게 반품할 수 있게 되며, 고객 만족도와 매출이 증가할 것으로 기대하고 있습니다.
이 프로그램의 성공 여부를 추적하기 위해 상품 기획자인 메러디스는 각 매장의 매장 주소와 반품 데이터를 결합한 보고서를 준비해 달라고 요청했습니다. 이 보고서는 위치 및 지역별 반품을 추적하는 데 사용되며, 이 정보는 다양한 시장에서 파일럿 프로그램의 성공 여부를 판단하는 데도 도움이 될 것입니다.
먼저 각 위치에서 지금까지 수집된 데이터를 살펴봅니다. 하지만 데이터 양이 엄청나다는 것을 금방 알게 됩니다. 수집, 처리, 분석해야 하는 데이터의 양이 많아 데이터 설계자인 아르템에게 도움을 요청합니다.
아르템은 작업 중인 두 개의 CSV 파일을 Dataproc을 사용하여 하나의 Parquet 파일로 결합할 것을 제안합니다. Parquet는 빠른 분석 쿼리에 최적화된 열 기반 데이터 형식입니다. 아르템은 TheLook eCommerce가 Spark로 분석을 수행하는 회사를 인수했으므로 Dataproc 및 Spark에 대해 자세히 알아볼 좋은 기회라고 덧붙입니다.
또한 메러디스의 보고서에 결합된 데이터를 사용하여 두 가지 분석 방법을 비교하도록 제안합니다. 하나는 익숙한 제품인 BigQuery를 중심으로 하고, 다른 하나는 Dataproc 및 Spark를 중심으로 합니다. 이를 통해 Dataproc 및 Spark에 대해 자세히 알아보고 두 플랫폼을 비교하여 파일럿 프로그램의 요구사항에 더 적합한 플랫폼을 파악할 수 있을 것입니다.
조언해 준 아르템에게 감사 인사를 전합니다. 하지만 BigQuery와 Dataproc 및 Spark를 비교하기 전에 비교에 사용될 데이터를 수집하고 처리하는 방법을 파악해야 합니다.
서로 다른 두 개의 CSV 파일을 결합하는 방법을 더 잘 계획하기 위해 다이어그램을 만듭니다. Dataproc Spark SQL을 사용하여 파일을 합치고 결합된 반품 파일을 Parquet 형식으로 렌더링하는 접근 방식을 취합니다.
이 데이터를 기준으로 분석을 비교하게 될 것입니다.
이 작업을 수행하는 방법은 다음과 같습니다. 먼저 Dataproc 클러스터에서 Jupyter 노트북을 엽니다. 다음으로 노트북의 안내에 따라 두 CSV 파일을 결합하여 Parquet 파일을 만듭니다. 그런 다음 Cloud Storage 버킷에 저장된 Parquet 파일의 데이터를 BigQuery 표준 테이블에 로드하여 데이터를 분석합니다. 마지막으로 Dataproc 클러스터의 Jupyter 노트북에서 동일한 Parquet을 참조하여 BigQuery를 사용한 데이터 분석과 Dataproc 및 Spark를 사용한 데이터 분석을 비교합니다.
다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.
이 실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있으며, 이를 위해 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.
이 실습을 완료하려면 다음을 준비해야 합니다.
실습 시작 버튼을 클릭합니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.
Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다). 새 브라우저 탭에서 로그인 페이지가 열립니다.
도움말: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하면 탭 간에 쉽게 전환할 수 있습니다.
필요한 경우 아래의 Google Cloud 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다. 다음을 클릭합니다.
실습 세부정보 패널에서도 Google Cloud 사용자 이름을 확인할 수 있습니다.
실습 세부정보 패널에서도 Google Cloud 비밀번호를 확인할 수 있습니다.
잠시 후 Cloud 콘솔이 이 탭에서 열립니다.
JupyterLab을 사용하여 Dataproc 클러스터에서 Jupyter 노트북을 만들고, 열고, 수정할 수 있습니다. 이를 통해 고성능이나 확장성과 같은 클러스터의 리소스를 활용하고 더 큰 데이터 세트에서 노트북을 더 빠르게 실행할 수 있습니다. JupyterLab을 사용하여 프로젝트에서 다른 사용자와 공동작업할 수도 있습니다.
이 작업에서는 Dataproc에서 기존 Dataproc 클러스터를 열고 JupyterLab으로 이동하여 이 실습의 나머지 작업을 완료하는 데 사용할 Jupyter 노트북을 찾습니다.
JupyterLab 환경이 새 브라우저 탭에서 열립니다.
C2M4-1 Combine and Export.ipynb 파일을 찾습니다.위치와 시장을 식별할 수 있도록 메러디스는 각 반품에 대한 정보 및 반품이 이루어진 실제 주소에 관한 정보가 필요합니다. 하지만 이 정보는 두 개의 별도 CSV 파일에 있습니다.
매장 반품 데이터는 매장에서 CSV 형식으로 내보내져 Cloud Storage 버킷에 복사된 데이터입니다. 이 데이터에는 order_id, rma_id, return_status, status_date, product_ied, quantity_returned, store_id가 포함됩니다.
매장 반품 CSV의 처음 10줄에는 다음이 포함됩니다.
매장 주소 데이터는 별도의 CSV 파일에 포함되어 있습니다. 이 데이터에는 store_id와 street_address가 포함됩니다.
매장 주소 CSV의 처음 10줄에는 다음이 포함됩니다.
이 작업에서는 C2M4-1 Combine and Export.ipynb 파일에 포함된 SQL 쿼리와 Python 명령어를 실행하여 두 CSV 파일을 결합합니다. 결합된 파일은 Parquet 파일로 저장됩니다.
왼쪽 사이드바에서 C2M4-1 Combine and Export.ipynb 파일을 더블클릭하여 JupyterLab 환경에서 엽니다.
JupyterLab 메뉴 바에서 커널 > 커널 변경을 클릭하고 PySpark를 선택한 다음 선택을 누릅니다.
다음으로 노트북의 안내에 따라 각 셀에서 코드를 실행합니다.
Dataproc의 Spark 세션은 Dataproc 클러스터에 연결하고 Spark 애플리케이션을 실행하는 방법입니다. Spark 애플리케이션을 시작하고 DataFrame을 만드는 주된 방법에 해당합니다. DataFrame은 Spark에서 처리하고 쿼리를 실행할 수 있는 테이블입니다. Spark를 사용하면 Google Cloud Storage 또는 BigQuery와 같은 다양한 스토리지 시스템에서 데이터를 읽고 쓸 수도 있습니다.
이 노트북에서는 Spark 세션을 만들고 CSV 파일의 매장 반품 데이터를 DataFrame(Spark에서 사용되는 테이블)에 로드했습니다. 그런 다음 두 번째 CSV 파일에서 매장 주소를 로드하고 두 DataFrame을 합친 후 결합된 단일 테이블을 Parquet 파일로 내보냈습니다. 마지막으로 쿼리를 사용하여 열 중 하나의 이름을 수정했습니다.
힌트: 아래 질문에 답변하는 동안 출력이 포함된 노트북을 열어 두세요.
내 진행 상황 확인하기를 클릭하여 이 작업을 올바르게 완료했는지 확인합니다.
결합된 Parquet 파일이 생성되어 Cloud Storage 버킷에 저장되었으므로 이제 BigQuery 중심 방식과 Dataproc 및 Spark 중심 방식이라는 두 가지 분석 실행 방식을 비교할 수 있습니다.
BigQuery 엔진을 사용하여 쿼리를 실행하고 데이터를 분석하는 데이터 웨어하우스인 BigQuery부터 시작합니다.
이전 작업에서 Parquet 파일을 만들어 Cloud Storage 버킷에 저장해 두었습니다. BigQuery에서 이 데이터에 액세스하려면 외부 테이블 또는 표준 테이블의 두 가지 옵션이 있습니다. 외부 테이블은 Google Cloud Storage와 같이 BigQuery 외부에 저장된 데이터를 참조합니다. 표준 테이블은 데이터 사본을 BigQuery에 직접 저장합니다.
아르템은 데이터를 빠르게 쿼리하고 처리할 수 있으므로 빅데이터를 처리할 때는 표준 테이블이 더 효율적인 선택인 경우가 많다고 말했습니다. 따라서 이 작업에는 표준 테이블이 가장 적합하다고 판단합니다.
이 작업에서는 Parquet 파일을 BigQuery의 표준 테이블에 로드하고 BigQuery 환경에서 사용되는 SQL 언어인 GoogleSQL을 사용하여 쿼리를 실행합니다. 그런 뒤, 다음 작업에서 BigQuery와 Dataproc, Spark를 비교하는 데 필요한 정보가 있는지 확인하기 위해 질문에 답합니다.
JupyterLab 브라우저 탭을 열어 둔 상태로 Google Cloud 콘솔 브라우저 탭(Dataproc 페이지가 여전히 열려 있어야 함)으로 돌아갑니다.
Google Cloud 콘솔의 탐색 메뉴()에서 BigQuery > Studio를 클릭합니다. BigQuery Studio는 BigQuery에서 쿼리를 작성하고 실행하는 기본 방법입니다.
쿼리 편집기에서 + (SQL 쿼리) 아이콘을 클릭하여 새 제목 없는 쿼리 탭을 엽니다.
다음 쿼리를 제목 없는 쿼리 탭에 복사합니다.
이 쿼리는 Parquet 파일을 BigQuery로 가져옵니다.
URI(Uniform Resource Identifier)는 Cloud Storage 버킷에 있는 파일의 경로입니다. URI 컬렉션은 URI를 대괄호 []로 묶어 LOAD DATA 명령어에 입력으로 제공할 수 있습니다. 이는 값이 URI 배열임을 나타냅니다.
URI는 항상 gs://로 시작하며, 이는 Cloud Storage의 리소스임을 나타냅니다. 위 예에 제공된 URI는 *.parquet로 끝나므로 .parquet 확장자가 있는 파일을 필터링합니다. * 기호는 와일드 카드이며 모든 문자열을 의미합니다.
이 쿼리는 이름이 .parquet로 끝나는 경로(gs://
이 쿼리는 'thelook_gcda.product_returns_to_store' 테이블의 행 수를 반환합니다.
기본적으로 BigQuery Studio에서 쿼리를 실행하면 GoogleSQL 언어를 사용하여 실행됩니다. GoogleSQL은 표준 SQL 언어의 상위 집합입니다. 즉, 모든 표준 SQL 쿼리와 BigQuery에서 대량의 데이터 및 복잡한 데이터 유형을 더 쉽게 처리할 수 있는 추가 확장 프로그램이 포함되어 있습니다.
이 쿼리는 월별 및 상태별로 수신된 반품 수를 표시합니다.
내 진행 상황 확인하기를 클릭하여 이 작업을 올바르게 완료했는지 확인합니다.
BigQuery에서 분석을 완료했으므로 이제 Dataproc 및 Spark를 중심으로 분석을 살펴볼 수 있습니다.
Spark는 Dataproc으로 데이터를 분석할 때의 주요 데이터 처리 엔진입니다. Dataproc은 Spark 클러스터를 자동으로 관리하며 Spark가 사전 설치되어 있으므로 편리하고 강력한 데이터 분석 방법입니다.
Spark는 자체 SQL 언어인 Spark SQL도 사용합니다. GoogleSQL과 마찬가지로 Spark SQL은 SQL 언어입니다. Spark SQL은 분산 SQL 언어이므로 Spark 클러스터의 여러 머신에 분산된 데이터를 쿼리하고 분석할 수 있습니다.
Dataproc 및 Spark로 Spark SQL 쿼리를 실행하려면 Jupyter 노트북을 사용합니다. 이 대화형 환경을 사용하면 코드를 작성하고 출력을 쉽게 표시할 수 있습니다.
이 작업에서는 Cloud Storage 버킷에서 참조되는 Parquet 파일에 Spark SQL 쿼리를 실행합니다. 그런 다음 BigQuery를 중심으로 하는 분석과 Dataproc 및 Spark를 중심으로 하는 분석이라는 두 가지 분석 실행 방법을 비교하는 데 도움이 되는 질문에 답합니다.
브라우저에서 JupyterLab 탭으로 돌아갑니다.
C2M4-2 Query Store Data with Spark SQL.ipynb 파일을 더블클릭하여 JupyterLab 환경에서 엽니다.
JupyterLab 메뉴 바에서 커널 > 커널 변경을 클릭하고 PySpark를 선택한 다음 선택을 누릅니다.
노트북의 안내에 따라 각 셀에서 코드를 실행합니다.
노트북에서 각 셀을 클릭하고 실행을 클릭하거나 Shift+Enter를 눌러 코드를 실행합니다.
노트북에서 Spark SQL 쿼리의 출력을 살펴봅니다.
JupyterLab 메뉴 바에서 파일, 노트북 저장을 차례로 클릭합니다.
노트북이 저장되지 않은 경우 아래의 진행 상황 확인에서 이러한 단계를 완료했음을 감지하지 못할 수 있습니다.
이 노트북에서는 먼저 Spark 세션을 만들었습니다. 그런 다음 iPython 노트북을 사용하여 Cloud Storage의 Parquet 파일에서 데이터를 참조하고 DataFrame을 채웠습니다. 이후 DataFrame을 Spark SQL과 함께 사용할 수 있도록 뷰를 만들었습니다. 다음으로 DataFrame에서 상위 3개 행을 반환하는 Spark SQL 쿼리를 실행했습니다. 마지막으로 이전 단계에서 BigQuery에서 실행한 것과 동일한 쿼리를 실행했습니다.
내 진행 상황 확인하기를 클릭하여 이 작업을 올바르게 완료했는지 확인합니다.
환경을 종료하기 전에 클러스터를 중지하는 것이 좋습니다.
이 실습에서 다룬 BigQuery를 사용한 데이터 분석과 Dataproc 및 Spark를 사용한 데이터 분석의 차이점을 요약한 다음 테이블을 살펴보세요.
| 작업 3 | 작업 4 | |
|---|---|---|
| 중심 제품 | BigQuery | Dataproc |
| 데이터 처리 엔진 | BigQuery | Spark |
| 데이터 위치 | BigQuery 표준 테이블 | GCS의 Parquet 파일 |
| SQL 언어 | GoogleSQL | Spark SQL |
| 개발 환경 | BigQuery Studio | Jupyter 노트북 |
수고하셨습니다.
메러디스의 보고서에 필요한 데이터를 수집하고 처리했으며, 결합된 데이터를 사용하여 두 가지 분석 접근 방식을 비교했습니다. 하나는 익숙한 제품인 BigQuery를 중심으로 하고 다른 하나는 Dataproc 및 Spark를 중심으로 한 분석입니다.
먼저 기존 Dataproc 클러스터에서 Jupyter 노트북을 열었습니다.
그런 다음 노트북의 안내에 따라 반품 및 주소 데이터가 포함된 두 개의 CSV 파일을 합쳐 결합된 Parquet 파일을 만들고 Cloud Storage 버킷에 Parquet 파일을 저장했습니다.
아르템의 조언에 따라 결합된 Parquet 파일을 사용하여 BigQuery와 Dataproc 및 Spark를 사용한 데이터 분석을 비교하여 데이터 처리 엔진, SQL 언어, 데이터 위치, 개발 환경에 대해 자세히 알아보았습니다.
이제 Dataproc 및 Spark를 사용하여 대규모 데이터 세트로 작업하는 방법을 이해할 수 있습니다.
실습을 종료하기 전에 모든 작업을 완료했는지 확인하세요. 준비가 되면 실습 종료를 클릭한 다음 제출을 클릭합니다.
실습을 종료하면 실습 환경에 대한 액세스 권한이 삭제되며, 실습에서 완료한 작업에 다시 액세스할 수 없습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
한 번에 실습 1개만 가능
모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.