Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기
컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

BigQuery로 컬렉션 스트리밍

Firebase
Made by Firebase

지정된 Cloud Firestore 컬렉션에서 BigQuery로 실시간 증분 업데이트를 전송합니다.

이 확장 프로그램의 작동 방식

이 확장 프로그램을 사용하면 Cloud Firestore 컬렉션의 문서를 BigQuery로 내보낼 수 있습니다. 내보내기가 실시간 및 증분 방식으로 수행되어 BigQuery의 데이터가 Cloud Firestore의 콘텐츠로 미러링됩니다.

이 확장 프로그램은 다음 두 BigQuery 리소스를 포함하는 데이터 세트 를 만들고 업데이트합니다.

  • 원시 데이터 테이블 : 컬렉션에 포함된 문서의 전체 변경 내역을 저장합니다. 이 테이블에는 여러 메타데이터 필드가 포함되어 있어 BigQuery에서 데이터의 현재 상태를 표시할 수 있습니다. 기본 메타데이터 필드로는 timestamp , document_name , 문서 변경에 대한 operation 이 있습니다.
  • : 컬렉션에 포함된 데이터의 현재 상태를 나타냅니다. 각 문서의 최신 operation 로그( CREATE , UPDATE 또는 IMPORT )도 표시합니다.

지정된 컬렉션에서 문서를 만들거나 업데이트하거나 삭제하거나 가져오면 이 확장 프로그램은 해당 업데이트를 BigQuery로 전송합니다. 그러면 미러링된 데이터 세트에 쿼리를 실행할 수 있습니다.

이 확장 프로그램은 컬렉션의 문서 변경사항만 수신 대기하며 _하위 컬렉션_의 변경사항은 수신 대기하지 않습니다. 하지만 이 확장 프로그램의 추가 인스턴스를 설치해 구체적으로 하위 컬렉션 또는 데이터베이스의 다른 컬렉션을 수신 대기할 수는 있습니다. 특정 컬렉션 내 모든 문서의 하위 컬렉션이 같은 경우에는 {wildcard} 표기법을 사용하여 모든 하위 컬렉션을 수신 대기할 수도 있습니다(예: chats/{chatid}/posts ).

와일드 카드 참조를 사용 설정하면 STRING 기반 열이 추가로 제공됩니다. 결과 JSON 필드 값은 ${param:COLLECTION_PATH}에 포함된 와일드 카드를 참조합니다. 이러한 값은 JSON_EXTRACT_SCALAR 를 사용하여 추출할 수 있습니다.

Partition 설정은 기존 테이블에서 업데이트할 수 없습니다. 이러한 옵션이 필요한 경우 새 테이블을 만들어야 합니다.

클러스터링 옵션을 추가할 때 Clustering 이 테이블을 만들거나 수정할 필요가 없으며 자동으로 업데이트됩니다.

추가 설정

확장 프로그램을 설치하려면 먼저 다음 단계를 수행해야 합니다.

변환 함수

문서 변경사항을 BigQuery로 보내기 전에 HTTP 함수로 데이터를 변환할 수 있습니다. 페이로드에는 다음이 포함됩니다.

{ 
  data: [{
    insertId: int;
    json: {
      timestamp: int;
      event_id: int;
      document_name: string;
      document_id: int;
      operation: ChangeType;
      data: string;
    },
  }]
}

응답은 구조적으로 동일해야 합니다.

BigQuery 데이터 세트 백필

이 확장 프로그램은 변경된 문서의 콘텐츠만 전송합니다. 기존 문서의 전체 데이터 세트를 BigQuery로 내보내지는 않습니다. 따라서 컬렉션의 모든 문서로 BigQuery 데이터 세트를 백필하려는 경우에는 이 확장 프로그램에서 제공하는 가져오기 스크립트 를 실행하면 됩니다.

중요: 이 확장 프로그램을 설치한 전체 컬렉션에 가져오기 스크립트를 실행하세요. 그러지 않으면 가져오기 중 데이터베이스에 수행된 모든 쓰기가 손실될 수 있습니다.

스키마 뷰 생성

데이터가 BigQuery에 있으면 이 확장 프로그램에서 제공하는 schema-views 스크립트 를 실행하여 관련 데이터를 더 쉽게 쿼리하는 뷰를 만들 수 있습니다. 데이터 구조를 설명하는 JSON 스키마 파일만 제공하면 schema-views 스크립트에서 뷰를 생성합니다.

결제

확장 프로그램을 설치하려면 프로젝트에서 사용한 만큼만 지불하는 Blaze 요금제 를 이용해야 합니다.

  • 이 확장 프로그램에 필요한 Firebase 리소스에 대해 사용 여부와 관계없이 일반적으로 월 $0.01 정도의 소액이 청구됩니다.
  • 이 확장 프로그램은 서비스의 무료 등급을 초과할 경우 관련 요금이 청구될 수 있는 다른 Firebase 및 Google Cloud Platform 서비스를 사용합니다.
  • BigQuery(이 확장 프로그램은 스트리밍 삽입 으로 BigQuery에 쓰기를 수행함)
  • Cloud Firestore
  • Cloud Functions(Node.js 10 이상 런타임. FAQ 보기 )

확장 프로그램 설치 방법

Firebase Console 사용

Firebase Console을 사용해 확장 프로그램을 설치하고 관리할 수 있습니다.

Console을 사용해 설치하기

Firebase CLI 사용

Firebase CLI를 사용해 확장 프로그램을 설치하고 관리할 수도 있습니다.

1단계: 다음 npm 명령어를 실행하여 CLI를 설치하거나 최신 CLI 버전으로 업데이트합니다.

npm install -g firebase-tools
작동하지 않는 경우 Firebase CLI 참조 를 살펴보거나 npm 권한 을 변경하세요.

2단계: 새 Firebase 프로젝트 디렉터리를 설정 하거나 기존 디렉터리로 이동합니다.

3단계: 다음을 실행하여 이 확장 프로그램을 확장 프로그램 매니페스트 에 추가합니다.

firebase ext:install firebase/firestore-bigquery-export --local --project=projectId_or_alias

Step 4 (Optional): Test this extension locally with the Firebase Emulator Suite

firebase emulators:start

5단계: 매니페스트의 확장 프로그램을 프로젝트에 배포 합니다.

firebase deploy --only extensions --project=projectId_or_alias
지원
Cloud Firestore
작성자
라이선스
Apache-2.0
버전
0.1.25