이 Codelab 정보
1. 소개
설문조사를 실시하는 이유는 고객 만족도 평가, 시장 조사, 제품 또는 서비스 개선, 직원 참여도 평가 등 다양합니다. 하지만 표준 형식은 사용하기 어렵다는 사실을 인지하기 전에 설문조사 데이터로 작업을 시도해 보셨을 수 있습니다. 이 가이드에서는 Google Forms 결과를 캡처하고, Cloud Dataprep으로 분석할 데이터를 준비하고, BigQuery에 로드하고, 팀이 Looker 또는 데이터 스튜디오와 같은 도구를 사용하여 시각적 분석을 수행할 수 있도록 하는 자동화된 파이프라인을 빌드합니다.
빌드할 항목
이 Codelab에서는 Dataprep을 사용하여 예시 Google Forms 설문조사의 응답을 데이터 분석에 유용한 형식으로 변환합니다. 변환된 데이터를 BigQuery로 푸시하여 SQL로 심층적인 질문을 하고 보다 강력한 분석을 위해 다른 데이터 세트에 조인할 수 있습니다. 마지막에는 사전 빌드된 대시보드를 살펴보거나 자체 비즈니스 인텔리전스 도구를 BigQuery에 연결하여 새 보고서를 만들 수 있습니다.
학습할 내용
- Dataprep을 사용하여 설문조사 데이터를 변환하는 방법
- 설문조사 데이터를 BigQuery로 푸시하는 방법
- 설문조사 데이터에서 유용한 정보를 더 많이 얻는 방법
필요한 항목
- 결제, BigQuery, Dataprep이 사용 설정된 Google Cloud 프로젝트
- Dataprep에 관한 기본 지식(필수는 아님)
- BigQuery 및 SQL에 대한 기본 지식이 유용하지만 필수는 아님
2. Google Forms 응답 관리
먼저 설문조사 예시의 Google Forms 응답을 자세히 살펴보겠습니다.
설문조사 결과는 '응답'에서 내보낼 수 있습니다. 새 스프레드시트를 만들거나 기존 스프레드시트에 결과를 로드하여 새 스프레드시트를 만드는 것입니다. 응답자가 답장을 제출하면 Google Forms에서 '응답 수락'을 선택 해제할 때까지 스프레드시트에 응답을 계속 추가합니다. 버튼을 클릭합니다.
이제 각 응답 유형과 Google Sheets 파일에서 이 응답이 어떻게 번역되는지 살펴보겠습니다.
3. 설문 응답 변환
설문조사 질문은 특정한 내보내기 형식을 사용하는 4개의 그룹으로 그룹화할 수 있습니다. 질문 유형에 따라 특정 방식으로 데이터를 재구성해야 합니다. 여기에서는 각 그룹과 적용해야 하는 변환 유형을 검토합니다.
객관식 질문: 단답형, 단락, 드롭다운, 선형 척도 등
- 질문 이름: 열 이름
- 응답: 셀 값
- 변환 요구사항: 변환이 필요하지 않습니다. 응답이 있는 그대로 로드됩니다.
객관식 질문: 객관식, 체크박스
- 질문 이름: 열 이름
- 응답: 세미콜론 구분자가 있는 값 목록 (예: 'Resp 1; Resp 4; Resp 6')
- 변환 요구사항: 각 응답이 새 행이 되도록 값 목록을 추출하고 피벗해야 합니다.
객관식 그리드 질문
이것은 객관식 질문의 예입니다. 각 행에서 하나의 값을 선택해야 합니다.
- 질문 이름: 각 개별 질문은 '질문 [Option]' 형식의 열 이름이 됩니다.
- 응답: 그리드의 각 개별 응답은 고유한 값을 포함하는 열이 됩니다.
- 변환 요구사항: 각 질문/답변은 표에서 새로운 행이 되고 두 개의 열로 나뉘어야 합니다. 한 열에는 질문 option을 언급하고 다른 열에는 응답이 포함되어 있습니다.
객관식 체크박스 그리드 질문
다음은 체크박스 그리드의 예입니다. 각 행에서 '없음'을 선택하거나 여러 개의 값을 선택할 수 있습니다.
- 질문 이름: 각 개별 질문은 '질문 [Option]' 형식의 열 이름이 됩니다.
- 응답: 그리드의 각 개별 응답은 세미콜론으로 구분된 값 목록이 있는 열이 됩니다.
- 변환 요구사항: 이 질문 유형에는 '체크박스'가 통합되어 있습니다. '여러 선택항목 그리드' 이 순서대로 해결해야 합니다.
먼저 각 응답의 값 목록을 추출하고 피벗해야 하므로 각 답변이 특정 질문에 대한 새로운 행이 됩니다.
둘째, 각 개별 응답이 테이블에서 새로운 행으로 되어 있고 두 개의 열로 나뉘어야 합니다. 한 열에는 질문 옵션을, 다른 열에는 답변을 언급합니다.
다음으로 Cloud Dataprep에서 이러한 변환이 처리되는 방식을 보여줍니다.
4. Cloud Dataprep 흐름 빌드
'Google Forms 애널리틱스 디자인 패턴' 가져오기 (Cloud Dataprep 내)
Google Forms 애널리틱스 디자인 패턴 흐름 패키지를 다운로드합니다 (압축을 풀지 않음). Cloud Dataprep 애플리케이션에서 왼쪽 탐색 메뉴에 있는 흐름 아이콘을 클릭합니다. 그런 다음 Flows(흐름) 페이지의 컨텍스트 메뉴에서 Import(가져오기)를 선택합니다.
흐름을 가져온 후 가져온 흐름을 선택하여 편집하면 다음과 같은 화면이 표시됩니다.
Connect Google Sheets 설문조사 결과 스프레드시트 연결
흐름의 왼쪽에서 데이터 소스를 Google Forms 결과가 포함된 Google Sheets에 다시 연결해야 합니다. Google 시트 데이터 세트 객체를 마우스 오른쪽 버튼으로 클릭하고 '바꾸기'를 선택합니다.
그런 다음 '데이터 세트 가져오기'를 클릭하고 모달 하단의 링크를 클릭합니다. '경로 수정'을 클릭합니다. 연필 모양 아이콘입니다.
그런 다음 현재 값을 Google Forms 결과가 있는 Google Sheets로 연결되는 이 링크로 대체합니다. 예 또는 자체 사본을 사용할 수 있습니다. https://docs.google.com/spreadsheets/d/1DgIlvlLceFDqWEJs91F8rt1B-X0PJGLY6shkKGBPWpk/edit?usp=sharing
'이동'을 클릭합니다. '가져오기 및 Add to Flow(흐름에 추가)'를 클릭합니다. 을 클릭합니다. 모달로 돌아오면 왼쪽 상단의 '바꾸기' 버튼을 클릭합니다.
BigQuery 테이블 연결
흐름의 오른쪽에서 출력을 자체 BigQuery 인스턴스에 연결해야 합니다. 각 출력의 아이콘을 클릭한 후 다음과 같이 속성을 수정합니다.
먼저 '수동 대상 유형'을 수정하여 시작합니다.
다음 '게시 설정'에서 수정 버튼을 클릭합니다.
'게시 작업' 버튼이 표시되면 화면에서 BigQuery 연결을 클릭하고 속성을 수정하여 연결 설정을 변경해야 합니다.
Google Forms 결과를 로드할 BigQuery 데이터 세트를 선택합니다. '기본값'을 선택할 수 있습니다. BigQuery 데이터 세트를 아직 만들지 않은 경우입니다.
'수동 대상'을 수정한 후 '예약된 대상'에서도 동일한 방식으로 진행합니다. 출력됩니다.
동일한 단계에 따라 각 출력에서 반복합니다. 총 8개의 목적지를 수정해야 합니다.
5. Cloud Dataprep 흐름 설명
'Google Forms 애널리틱스 디자인 패턴'의 기본 아이디어 흐름은 앞서 설명한 대로 각 질문 카테고리를 특정 Cloud Dataprep 데이터 변환 레시피로 나누어 설문조사 응답을 변환하는 것입니다.
이 흐름에서는 질문을 4개의 표 (편의상 4개의 질문 카테고리에 해당)로 나눕니다.
'Clean Headers'로 시작하여 각 레시피를 하나씩 살펴보는 것이 좋습니다. 'SingleChoiceSELECT-Questions'에서 그 뒤에 레시피가 표시됩니다
모든 레시피에는 다양한 변환 단계를 설명하는 주석이 포함되어 있습니다. 레시피에서 단계를 수정하고 특정 열의 이전/이후 상태를 미리 볼 수 있습니다.
6. Cloud Dataprep 흐름 실행
이제 소스와 대상이 올바르게 구성되었으므로 흐름을 실행하여 응답을 변환하고 BigQuery에 로드할 수 있습니다. 각 출력을 선택하고 '실행'을 클릭합니다. 버튼을 클릭합니다. 지정된 BigQuery 테이블이 존재하는 경우 Dataprep은 새 행을 추가하고, 그렇지 않으면 새 테이블을 생성합니다.
'작업 기록'을 클릭합니다. 아이콘을 클릭하여 작업을 모니터링합니다. 계속 진행하여 BigQuery 테이블을 로드하는 데는 몇 분 정도 걸립니다.
모든 작업이 완료되면 설문조사 결과가 분석 준비가 완료된 깔끔하고 구조화된 정규화된 형식으로 BigQuery에 로드됩니다.
7. BigQuery에서 설문조사 데이터 분석하기
BigQuery용 Google 콘솔에서 각각의 새 테이블의 세부정보를 확인할 수 있습니다.
BigQuery의 설문조사 데이터를 사용하면 보다 포괄적인 질문을 통해 설문조사 응답을 보다 심층적으로 이해할 수 있습니다. 예를 들어 다양한 직업을 가진 사람들이 가장 일반적으로 사용하는 프로그래밍 언어를 이해하려고 한다고 가정해 보겠습니다. 다음과 같이 쿼리를 작성할 수 있습니다.
SELECT
programming_answers.Language AS programming_answers_language,
project_answers.Title AS project_answers_title,
AVG((case when programming_answers.Level='None' then 0
when programming_answers.Level='beginner' then 1
when programming_answers.Level='competent' then 2
when programming_answers.Level='proficient' then 3
when programming_answers.Level='expert' then 4
else null end) ) AS programming_answers_average_level_value
FROM `my-project.DesignPattern.A000111_ProjectAnswers` AS project_answers
INNER JOIN `my-project.A000111_ProgrammingAnswers` AS programming_answers
ON programming_answers.RESPONSE_ID = project_answers.RESPONSE_ID
GROUP BY 1,2
ORDER BY 3 DESC
더욱 강력한 분석을 수행하려면 설문조사 응답을 CRM 데이터에 조인하여 데이터 웨어하우스에 이미 포함된 계정에 참여자가 매핑되는지 확인할 수 있습니다. 이를 통해 기업은 고객 지원 또는 신규 출시에 대한 사용자 타겟팅과 관련하여 보다 정확한 정보를 바탕으로 결정을 내릴 수 있습니다.
여기에서는 응답자의 도메인과 계정 웹사이트에 따라 설문조사 데이터를 계정 표에 조인하는 방법을 보여줍니다. 이제 계정 유형별로 응답 분포를 확인할 수 있으므로 기존 고객 계정에 속한 응답자 수를 파악하는 데 도움이 됩니다.
SELECT
account.TYPE AS account_type,
COUNT(DISTINCT project_answers.Domainname) AS project_answers_count_domains
FROM `my-project.A000111_ProjectAnswers` AS project_answers
LEFT JOIN `my-project.testing.account` AS account
ON project_answers.Domainname=account.website
GROUP BY 1
8. 시각적 분석 수행
설문조사 데이터가 데이터 웨어하우스에 중앙 집중화되었으므로 비즈니스 인텔리전스 도구에서 데이터를 쉽게 분석할 수 있습니다. 데이터 스튜디오 및 Looker에 몇 가지 예시 보고서가 마련되어 있습니다.
Looker
이미 Looker 인스턴스가 있는 경우 이 폴더의 LookML 을 사용하여 이 패턴에 대한 샘플 설문조사 및 CRM 데이터 분석을 시작할 수 있습니다. 새 Looker 프로젝트를 만들고 LookML을 추가한 후 BigQuery 구성과 일치하도록 파일의 연결 및 테이블 이름을 바꾸기만 하면 됩니다. Looker 인스턴스가 없지만 자세히 알아보고 싶다면 여기에서 데모를 예약하세요.
데이터 스튜디오
또는 데이터 스튜디오에서 보고서를 만들려면 Google 교차 '빈 보고서'가 있는 프레임을 클릭합니다. BigQuery에 연결할 수 있습니다 데이터 스튜디오의 안내를 모두 따릅니다. 데이터 스튜디오의 주요 기능에 대한 소개와 빠른 시작 가이드를 여기에서 자세히 알아볼 수 있습니다. 사전 빌드된 데이터 스튜디오 대시보드도 여기에서 확인할 수 있습니다.
9. 삭제
비용이 청구되지 않도록 하는 가장 쉬운 방법은 튜토리얼에서 만든 Cloud 프로젝트를 삭제하는 것입니다. 또는 개별 리소스를 삭제할 수 있습니다.
- Cloud 콘솔에서 리소스 관리로 이동합니다.
- 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
- 대화상자에서 프로젝트 ID를 입력하고 종료를 클릭하여 프로젝트를 삭제합니다.