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 Sheets 아이콘을 클릭하고 새 스프레드시트를 만들거나 결과를 기존 스프레드시트에 로드하여 내보낼 수 있습니다. '응답 수락' 버튼을 선택 해제할 때까지 응답자가 답변을 제출할 때마다 Google Forms에서 스프레드시트에 응답을 계속 추가합니다.
이제 각 응답 유형과 Google Sheets 파일에서 어떻게 변환되는지 살펴보겠습니다.
3. 설문조사 응답 변환
설문조사 질문은 특정 내보내기 형식이 있는 4가지 그룹으로 그룹화할 수 있습니다. 질문 유형에 따라 특정 방식으로 데이터를 재구성해야 합니다. 여기에서는 각 그룹과 적용해야 하는 변환 유형을 검토합니다.
객관식(단일 정답): 단답형, 단락형, 드롭다운, 선형 눈금 등
- 질문 이름: 열 이름
- 응답: 셀 값
- 변환 요구사항: 변환이 필요하지 않습니다. 응답이 있는 그대로 로드됩니다.
객관식 문제: 객관식, 체크박스
- 질문 이름: 열 이름
- Response: 세미콜론 구분자가 있는 값 목록입니다 (예: 'Resp 1; Resp 4; Resp 6').
- 변환 요구사항: 값 목록을 추출하고 피벗해야 각 응답이 새 행이 됩니다.
객관식 그리드 질문
다음은 객관식 질문의 예입니다. 각 행에서 하나의 값을 선택해야 합니다.
- 문항 이름: 각 개별 문항은 '문항 [옵션]' 형식의 열 이름이 됩니다.
- 응답: 그리드의 각 개별 응답은 고유한 값이 있는 열이 됩니다.
- 변환 요구사항: 각 질문/답변이 테이블의 새 행이 되어 두 열로 나뉘어야 합니다. 한 열에는 질문 옵션이, 다른 열에는 응답이 표시됩니다.
객관식 체크박스 그리드 질문
다음은 체크박스 그리드의 예입니다. 각 행에서 0개에서 여러 개의 값을 선택할 수 있습니다.
- 문항 이름: 각 개별 문항은 '문항 [옵션]' 형식의 열 이름이 됩니다.
- 응답: 그리드의 각 개별 응답은 값 목록이 세미콜론으로 구분된 열이 됩니다.
- 변환 요구사항: 이 질문 유형은 '체크박스' 및 '객관식 그리드' 카테고리를 결합하며 이 순서대로 해결해야 합니다.
먼저 각 응답의 값 목록을 추출하고 피벗해야 각 답변이 특정 질문의 새 행이 됩니다.
두 번째: 각 개별 응답은 표의 새 행이 되어야 하며 두 열로 나눠져야 합니다. 한 열에는 질문 옵션이, 다른 열에는 답변이 표시됩니다.
다음으로 Cloud Dataprep에서 이러한 변환이 처리되는 방식을 보여줍니다.
4. Cloud Dataprep 흐름 빌드
Cloud Dataprep에서 'Google Forms 분석 디자인 패턴' 가져오기
Google Forms 애널리틱스 디자인 패턴 흐름 패키지를 다운로드합니다 (압축 풀지 않음). Cloud Dataprep 애플리케이션의 왼쪽 탐색 메뉴에서 흐름 아이콘을 클릭합니다. 그런 다음 흐름 페이지에서 컨텍스트 메뉴의 가져오기를 선택합니다.
흐름을 가져온 후 가져온 흐름을 선택하여 수정합니다. 화면이 다음과 같이 표시됩니다.
Google Sheets 설문조사 결과 스프레드시트 연결하기
흐름의 왼쪽에서 데이터 소스를 Google Forms 결과가 포함된 Google Sheets에 다시 연결해야 합니다. Google 시트 데이터 세트 객체를 마우스 오른쪽 버튼으로 클릭하고 'Replace'(바꾸기)를 선택합니다.
그런 다음 모달 하단에 있는 '데이터 세트 가져오기' 링크를 클릭합니다. '경로 수정' 연필을 클릭합니다.
그런 다음 현재 값을 Google Forms 결과가 포함된 Google Sheets를 가리키는 이 링크로 대체합니다. 예시를 사용하거나 자체 사본을 사용할 수 있습니다. https://docs.google.com/spreadsheets/d/1DgIlvlLceFDqWEJs91F8rt1B-X0PJGLY6shkKGBPWpk/edit?usp=sharing
오른쪽 하단에서 '이동'을 클릭한 다음 '가져오기 및 흐름에 추가'를 클릭합니다. 모달로 돌아오면 오른쪽 하단의 '교체' 버튼을 클릭합니다.
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를 입력하고 종료를 클릭하여 프로젝트를 삭제합니다.