Google Forms 설문조사 응답을 변환하여 BigQuery에 로드

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 응답을 자세히 살펴보겠습니다.

f3d25efd2cc923f5.png

설문조사 결과는 Google Sheets 아이콘을 클릭하고 새 스프레드시트를 만들거나 결과를 기존 스프레드시트에 로드하여 '응답' 탭에서 내보낼 수 있습니다. Google Forms는 응답자가 답변을 제출할 때 '응답 수락' 버튼을 선택 해제할 때까지 스프레드시트에 응답을 계속 추가합니다.

d499e5a4dccdf5fd.png

4939332a5d8f9f19.png

이제 각 응답 유형과 Google Sheets 파일에서 변환되는 방식을 검토해 보겠습니다.

3. 설문조사 응답 변환

설문조사 질문은 특정 내보내기 형식을 갖는 4개의 계열로 그룹화할 수 있습니다. 질문 유형에 따라 특정 방식으로 데이터를 재구성해야 합니다. 여기서는 각 그룹과 적용해야 하는 변환 유형을 검토합니다.

단일 선택 질문: 단답형, 서술형, 드롭다운, 선형 척도 등

  • 질문 이름: 열 이름
  • 응답: 셀 값
  • 변환 요구사항: 변환이 필요하지 않음. 응답이 있는 그대로 로드됨.

3eeedc50b0fd54fd.png

객관식 질문: 객관식, 체크박스

  • 질문 이름: 열 이름
  • 응답: 세미콜론 구분 기호로 구분된 값 목록 (예: "Resp 1; Resp 4; Resp 6")
  • 변환 요구사항: 값 목록을 추출하고 피벗해야 하므로 각 응답이 새 행이 됩니다.

cab8a38a96a13ce4.png

객관식 그리드 질문

다음은 객관식 질문의 예입니다. 각 행에서 하나의 값을 선택해야 합니다.

c6ea3d47d4dd5e78.png

  • 질문 이름: 각 개별 질문은 'Question [Option]' 형식의 열 이름이 됩니다.
  • 응답: 그리드의 각 개별 응답은 고유한 값을 갖는 열이 됩니다.
  • 변환 요구사항: 각 질문/답변은 테이블의 새 행이 되고 두 개의 열로 나뉘어야 합니다. 질문 옵션 을 언급하는 열과 응답이 있는 열입니다.

9223d0271516c58d.png

객관식 체크박스 그리드 질문

다음은 체크박스 그리드의 예입니다. 각 행에서 0개에서 여러 개의 값을 선택할 수 있습니다.

4e3189b8cc2d4a8b.png

  • 질문 이름: 각 개별 질문은 'Question [Option]' 형식의 열 이름이 됩니다.
  • 응답: 그리드의 각 개별 응답은 세미콜론으로 구분된 값 목록이 있는 열이 됩니다.
  • 변환 요구사항: 이러한 질문 유형은 '체크박스' 및 '객관식 그리드' 카테고리를 결합하며 이 순서로 해결해야 합니다.

먼저 각 응답의 값 목록을 추출하고 피벗해야 하므로 각 답변이 특정 질문의 새 행이 됩니다.

둘째, 각 개별 응답은 테이블의 새 행이 되고 두 개의 열로 나뉘어야 합니다. 질문 옵션 을 언급하는 열과 답변이 있는 열입니다.

3c3c2bd098e03003.png

다음으로 Cloud Dataprep으로 이러한 변환을 처리하는 방법을 보여드리겠습니다.

4. Cloud Dataprep 흐름 빌드

Cloud Dataprep에서 'Google Forms 분석 디자인 패턴' 가져오기

Google Forms 분석 디자인 패턴 흐름 패키지를 다운로드합니다 (압축 해제하지 않음). Cloud Dataprep 애플리케이션의 왼쪽 탐색 메뉴에서 흐름 아이콘을 클릭합니다. 그런 다음 흐름 페이지에서 컨텍스트 메뉴에서 가져오기를 선택합니다.

ba7c0cb0eec398df.png

흐름을 가져온 후 가져온 흐름을 선택하여 수정합니다. 화면은 다음과 같이 표시됩니다.

44978861eb34ec71.png

Google Sheets 설문조사 결과 스프레드시트 연결

흐름의 왼쪽에 있는 데이터 소스를 Google Forms 결과가 포함된 Google Sheets에 다시 연결해야 합니다. Google Sheets 데이터세트 객체를 마우스 오른쪽 버튼으로 클릭하고 '바꾸기'를 선택합니다.

55c16f0c04366f0c.png

그런 다음 모달 하단의 '데이터세트 가져오기' 링크를 클릭합니다. '경로 수정' 연필을 클릭합니다.

8afeef260c96277f.png

여기에서 현재 값을 Google Forms 결과가 있는 Google Sheets를 가리키는 이 링크로 바꿉니다. 예 또는 자체 사본을 사용할 수 있습니다. https://docs.google.com/spreadsheets/d/1DgIlvlLceFDqWEJs91F8rt1B-X0PJGLY6shkKGBPWpk/edit?usp=sharing

'이동'을 클릭한 다음 오른쪽 하단에서 '가져오기 및 흐름에 추가'를 클릭합니다. 모달로 돌아가면 오른쪽 하단에 있는 '바꾸기' 버튼을 클릭합니다.

BigQuery 테이블 연결

흐름의 오른쪽에서 출력을 자체 BigQuery 인스턴스에 연결해야 합니다. 각 출력에 대해 아이콘을 클릭한 다음 다음과 같이 속성을 수정합니다.

먼저 '수동 대상'을 수정합니다.

a3fc2cb80153ec25.png

다음 '게시 설정' 화면에서 수정 버튼을 클릭합니다.

85791e6162a370de.png

'게시 작업' 화면이 표시되면 BigQuery 연결을 클릭하고 속성을 수정하여 연결 설정을 변경해야 합니다.

1f3e4887baaeaffd.png

Google Forms 결과를 로드할 BigQuery 데이터세트를 선택합니다. BigQuery 데이터세트를 아직 만들지 않은 경우 '기본값'을 선택할 수 있습니다.

f4eaa05ecf9de162.png

'수동 대상'을 수정한 후 '예약된 대상' 출력에 대해 동일한 방식으로 진행합니다.

46edea1b8ca63270.png

동일한 단계를 따라 각 출력을 반복합니다. 총 8개의 대상을 수정해야 합니다.

5. Cloud Dataprep 흐름 설명

'Google Forms 분석 디자인 패턴' 흐름의 기본 아이디어는 각 질문 카테고리를 특정 Cloud Dataprep 데이터 변환 레시피로 분류하여 앞에서 설명한 대로 설문조사 응답에 변환을 실행하는 것입니다.

이 흐름은 질문을 4개의 테이블로 나눕니다 (간단하게 하기 위해 4개의 질문 카테고리에 해당).

afa421849b1bd398.png

'Clean Headers'로 시작하여 'SingleChoiceSELECT-Questions'를 차례로 실행한 다음 아래의 다른 레시피를 실행하여 각 레시피를 하나씩 탐색하는 것이 좋습니다.

모든 레시피는 다양한 변환 단계를 설명하기 위해 주석 처리됩니다. 레시피에서 단계를 수정하고 특정 열의 전후 상태를 미리 볼 수 있습니다.

449da06d96cd520e.png

4ac6e14f578d0707.png

6. Cloud Dataprep 흐름 실행

이제 소스와 대상이 올바르게 구성되었으므로 흐름을 실행하여 응답을 BigQuery로 변환하고 로드할 수 있습니다. 각 출력을 선택하고 '실행' 버튼을 클릭합니다. 지정된 BigQuery 테이블이 있으면 Dataprep이 새 행을 추가하고, 그렇지 않으면 새 테이블을 만듭니다.

47cf50f6d17a5b1e.png

왼쪽 창에서 '작업 기록' 아이콘을 클릭하여 작업을 모니터링합니다. BigQuery 테이블을 진행하고 로드하는 데 몇 분 정도 걸립니다.

afc79eeb27202fb4.png

모든 작업이 완료되면 설문조사 결과가 분석을 위해 준비된 깔끔하고 구조화되고 정규화된 형식으로 BigQuery에 로드됩니다.

7. BigQuery에서 설문조사 데이터 분석

BigQuery의 Google 콘솔에서 각 새 테이블의 세부정보를 확인할 수 있습니다.

df370873572511ac.png

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 인스턴스가 없지만 자세히 알아보려면 여기에서 데모를 예약할 수 있습니다.

129db05d6f85f484.png

데이터 스튜디오

또는 데이터 스튜디오에서 보고서를 만들려면 Google 십자가가 있는 프레임 '빈 보고서'를 클릭하고 BigQuery에 연결합니다. 데이터 스튜디오의 모든 안내를 따릅니다. 자세한 내용은 여기에서 빠른 시작 및 데이터 스튜디오의 주요 기능 소개를 확인할 수 있습니다. 여기에서 사전 빌드된 데이터 스튜디오 대시보드를 찾을 수도 있습니다.

5e744869e3fe3f8f.png

9. 삭제

비용이 청구되지 않도록 하는 가장 쉬운 방법은 가이드에서 만든 Cloud 프로젝트를 삭제하는 것입니다. 또는 개별 리소스를 삭제할 수 있습니다.

  1. Cloud Console에서 리소스 관리로 이동합니다.
  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제 를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력하고 종료 를 클릭하여 프로젝트를 삭제합니다.