데이터베이스의 실시간 스프레드시트

BigQuery 팀은 Google 시트를 데이터베이스의 테이블처럼 취급하는 기능을 개발했습니다. 즉, 수십억 개 행의 BigQuery 테이블을 단일 쿼리에서 스프레드시트에 입력하는 100개 행의 매핑 테이블과 조인할 수 있습니다.

이 기능을 사용하면 데이터 모델을 구성하거나, 임시 데이터의 데이터 파이프라인을 만들거나, 최신 수치를 최신 목표 및 예상치와 비교할 수 있습니다.

예를 들어 Google 양식을 사용하여 수집된 Looker의 사용자 이름을 모델링할 수 있습니다.

Looker에서 정보를 수집하고 모델링하려면 다음 단계를 따르세요.

  1. Google Forms를 사용하여 Google 시트로 데이터를 수집합니다. 제출할 때마다 시트에 행이 추가됩니다.
  2. 스프레드시트를 Looker에 연결하는 데 사용하는 서비스 계정과 공유하거나 링크가 있는 사용자에게 액세스 권한을 부여합니다(보기 전용).
  3. 프로젝트에 Drive API 및 Sheets API가 사용 설정되어 있는지 확인합니다.
  4. BigQuery 인터페이스에서 스프레드시트에서 콘텐츠를 가져오는 테이블을 만듭니다.
  5. Looker 프로젝트에서 스프레드시트 테이블을 사용자의 위치와 같이 이미 수집한 다른 사용자 데이터와 조인하는 데이터 모델을 생성합니다. SQL을 사용하여 데이터베이스에서 발생하는 이름을 정규화할 수도 있습니다. 스프레드시트에 과도한 부하가 발생하지 않도록 BigQuery에 데이터를 캐시할 수 있습니다.

다음은 결과 LookML이 어떻게 표시되는지 보여주는 예입니다.

explore: names_sheet {
  persist_for: "60 seconds"

  join: names_facts {
    sql_on: ${names_sheet.normalized_name} = ${names_facts.normalized_name} ;;
    sql_where: ${names_facts.city} ;;
    relationship: one_to_one
  }

  view_name: names_sheet {
    derived_table: {
      persist_for: "2 minutes"
      sql:
        SELECT row_number() OVER() as id, name, UPPER(CASE WHEN REGEXP_MATCH(name, r'\,')
          THEN REGEXP_EXTRACT(name, r', (\w+)')
          ELSE REGEXP_EXTRACT(name, r'^(\w+)')
          END
          ) as normalized_name FROM namesheet.names ;;
    }

    dimension: id {
      type: number
    }

    dimension: name {
      order_by_field: id    # keep the rows in the original order
    }

    dimension: normalized_name {
    }

    measure: count {
      type: count
      drill_fields: [id, name, names_facts.city]
    }

    measure: count_from_new_york_city {
      type: count
      filters: [names_facts.city: "New York City"]
    }

    measure: percentage_from_new_york_city {
      type: number
      sql: ${count_from_new_york_city}/${count} ;;
      value_format_name: percent_2
    }

    measure: average_age_median {
      type: average
      sql: ${names_facts.age_median} ;;
      value_format: "0000"
    }
  }
}

이 모델에서는 데이터를 사용하여 Explore를 만들고 Google Forms에서 수집하고 Google 시트에 입력한 모든 사용자 이름과 각 개별 사용자에 대한 기타 정보를 보여주는 Look대시보드를 만들 수 있습니다.