Snowflake Connector for Google Analytics Raw Data 의 데이터 수집 모델

Google Analytics Raw Data용 Snowflake Connector에는 커넥터 약관 이 적용됩니다.

이 항목에서는 Snowflake Connector for Google Analytics Raw Data 에서 지원하는 데이터 수집 모델에 대한 정보를 제공합니다.

BigQuery 내보내기를 위한 Google Analytics

Google Analytics는 두 가지 유형의 BigQuery 내보내기를 지원합니다.
  • 매일 - Google Analytics는 events_XXXXXX 라는 테이블로 데이터를 내보냅니다. 테이블은 지정된 날의 모든 이벤트가 수집된 후 하루가 끝나면 매일 한 번 생성됩니다.

  • 스트리밍 - Google Analytics는 종일 지속적으로 데이터를 내보내고 이를 events_intraday_XXXXXX 라는 테이블에 저장합니다.

  • 사용자 - 수집된 이벤트와 관련된 사용자 데이터가 포함된 Google Analytics 내보내기. 테이블은 users_XXXXXXpseudonymous_users_XXXXXX 라는 이름으로 BigQuery에 저장됩니다.

커넥터는 두 가지 유형의 내보내기를 모두 지원하며 일일 또는 일중 여부에 관계없이 BigQuery에서 찾는 모든 테이블을 자동으로 다운로드합니다. 추가 구성이 필요하지 않습니다.

싱크대

각 속성에 대해 커넥터는 데이터베이스에서 생성된 속성별 테이블과 커넥터 구성 중에 제공된 스키마에 이벤트를 저장합니다. 각 속성에 대해 일일 내보내기용 테이블 1개, 일중 내보내기용 테이블 1개, 사용자 데이터 내보내기용 테이블 2개를 합쳐 총 4개 테이블이 생성되는데, 그 이름은 각각 ANALYTICS_XXXXXXXXX, ANALYTICS_INTRADAY_XXXXXXXXX, USERS_XXXXXXXXX, PSEUDONYMOUS_USERS_XXXXXXXXX 입니다. 커넥터는 특정 Google Analytics 내보내기 구성에 관계없이 BigQuery에서 사용 가능한 모든 테이블을 수집하려고 항상 시도합니다.

일일 테이블 수집

커넥터는 테이블이 BigQuery에 존재한다는 점을 인식하면 단일 실행으로 전체 테이블을 다운로드합니다. Google에서는 테이블이 생성된 후 최대 72시간까지는 일일 테이블이 업데이트될 수 있다고 경고합니다. 데이터 일관성을 보장하기 위해 커넥터는 72시간 후에 테이블을 다시 로드합니다(다시 로드하는 정확한 시간은 커넥터 수집 일정에 따라 달라짐). 테이블 생성 72시간 후에 BigQuery에서 이루어진 업데이트는 Snowflake에 반영되지 않습니다. 이러한 테이블은 RELOAD_PROPERTY 프로시저 중 하나를 사용하여 수동으로 다시 로드할 수 있습니다.

일중 수집

커넥터는 과거 일중 테이블(BigQuery에 있는 경우) 다운로드와 계속 업데이트를 받는 일중 테이블의 지속적인 수집을 지원합니다.

과거의 날에 대해서는 커넥터는 일일 테이블의 경우와 동일한 방식으로 일중 테이블을 다운로드합니다. 각 테이블은 프로세스가 현재 데이터에 도달할 때까지 한 번에 한 테이블씩 전체적으로 다운로드됩니다.

커넥터는 일중 테이블이 BigQuery의 마지막 테이블임을 인식하면 테이블을 증분 처리하기 시작합니다. 이는 기본적으로 8시간인 일정한 간격으로 종일 테이블에서 들어오는 데이터 배치를 다운로드한다는 의미입니다.

다음 조건 중 하나라도 충족되는 경우:

  • 다음 날 테이블이 BigQuery 데이터 세트에 나타남

  • 지정된 테이블에 대한 첫 번째 로드 이후 24시간 경과

커넥터가 지정된 일중 테이블에 대한 최종 수집을 수행하고 다음 테이블로 전환합니다.

참고

이벤트가 10분 이상 지연되는 경우 소수의 이벤트가 수집되지 않을 수 있습니다. 일중 테이블의 증분 로드가 완료된 직후 커넥터는 손실된 이벤트가 있는지 확인하며, 있는 경우 Snowflake와 BigQuery 간의 데이터 일관성을 보장하기 위해 테이블을 다시 로드하도록 예약합니다.

사용자 데이터 테이블 수집

사용자 데이터 테이블 수집은 일일 테이블 수집과 동일한 메커니즘을 기반으로 합니다.

예약하기

커넥터는 BigQuery에 새 테이블이 있는지 확인한 다음 아래와 같은 경우 Snowflake에 새 테이블(또는 증분 일중 수집의 경우에는 새 테이블의 일부)의 수집을 예약합니다.

  • 구성된 예약 일정에 따라 작업이 트리거된 경우
    • 기본적으로 8시간마다 트리거됨

    • CONFIGURE_INGESTION_INTERVAL 을 사용하면 더/덜 자주 업데이트해야 하는 경우 기본 간격 값을 변경할 수 있습니다.

  • 커넥터가 마지막으로 예약된 테이블의 수집을 완료한 경우
    • 결과적으로, 하루에 한 번 이상 수집을 수행해야 하며 이는 곧 한 번 이상 추가 검사가 필요하다는 의미이므로 구성에서 지정된 것보다 예약 수집이 더 자주 실행된다는 의미입니다.

    • 특히, 초기 로드가 진행 중이고 수집할 테이블이 많은 경우에는 각 테이블을 수집한 후 예약 메커니즘이 트리거됩니다.