AlloyDB에서 BigQuery 데이터에 액세스하는 방법 선택

PostgreSQL용 AlloyDB에서 BigQuery 데이터에 액세스하려면 bigquery_fdw (외부 데이터 래퍼) 및 alloydb_sync 확장 프로그램을 사용하면 됩니다. 이러한 확장 프로그램은 분석 데이터와 운영 데이터를 통합하는 메서드를 제공합니다. 실시간 데이터 액세스 (레이크하우스 제휴), 일회성 데이터 작업, 주기적 동기화 이 문서에서는 AlloyDB에서 BigQuery 데이터에 액세스하는 옵션을 설명합니다.

레이크하우스 제휴

레이크하우스 제휴를 사용하면 데이터를 이동하거나 복제하지 않고도 PostgreSQL용 AlloyDB에서 바로 BigQuery 데이터에 실시간으로 액세스할 수 있습니다. 두 시스템을 연결하기 위해 이 메서드는 bigquery_fdw 확장 프로그램을 사용합니다. 이 확장 프로그램을 사용하면 실시간 데이터 세트를 바로 쿼리할 수 있습니다. 소스 데이터를 직접 쿼리하므로 데이터 파이프라인 또는 동기화 간격의 지연 시간과 유지보수 오버헤드를 우회하여 사용 가능한 최신 데이터에서 통계를 얻을 수 있습니다.

성능을 최적화하기 위해 AlloyDB는 표준 필터와 집계를 BigQuery로 푸시하고 관련성이 있고 사전 필터링된 결과만 인스턴스로 다시 스트리밍합니다. 자세한 내용은 BigQuery의 실시간 데이터에 대한 AlloyDB 액세스 개요를 참조하세요.

사용 사례

레이크하우스 제휴는 다음 사용 사례를 지원합니다.

  • 실시간 운영 분석: 일괄 처리를 기다리지 않고 즉각적인 비즈니스 결정을 내리려면 BigQuery에서 사용 가능한 최신 분석 데이터에 액세스해야 합니다.
  • 하이브리드 트랜잭션 분석 처리 (HTAP): AlloyDB에 있는 실시간 '핫' 운영 데이터를 BigQuery에 저장된 대규모의 과거 '콜드' 데이터와 조인하는 분석을 실행해야 합니다.
  • 임시 및 탐색적 데이터 분석: 복잡한 추출, 변환, 로드 (ETL) 파이프라인을 빌드, 유지보수 또는 기다리지 않고 BigQuery 데이터에 대해 즉시 쿼리를 실행하려고 합니다.
  • 무복사 아키텍처: PostgreSQL 시맨틱스를 통해 액세스를 유지하면서 분석 데이터를 한곳에 보관하여 스토리지 비용과 데이터 거버넌스 오버헤드를 최소화하려고 합니다.

일회성 테이블 동기화

일회성 작업은 지속적인 일정에 따라 데이터에 액세스하거나 데이터를 이동하는 것이 아니라 BigQuery에서 한 번만 데이터를 이동하거나 액세스합니다. 테이블 동기화 또는 외부 테이블 가져오기를 사용하여 일회성 작업을 실행할 수 있습니다.

테이블 동기화

alloydb_sync 확장 프로그램에서 alloydb_sync.import_bq_table() 함수를 사용하여 일회성 동기화를 실행할 수 있습니다. 이 함수는 BigQuery에서 로컬 AlloyDB 스토리지로 데이터를 스트리밍합니다.

결과는 AlloyDB 클러스터의 완전히 독립적인 쓰기 가능한 PostgreSQL 테이블입니다. 동기화된 테이블은 쓰기 가능하므로 로컬 데이터에서 INSERT, UPDATE, DELETE 작업을 자유롭게 실행할 수 있습니다. 자세한 내용은 BigQuery 데이터를 AlloyDB에 동기화를 참조하세요.

테이블 가져오기

bigquery_fdw 확장 프로그램을 사용하여 일회성 가져오기를 실행할 수 있습니다. 이 메서드는 IMPORT FOREIGN SCHEMA 또는 CREATE FOREIGN TABLE을 사용하여 BigQuery 데이터 세트를 AlloyDB에 매핑합니다.

bigquery_fdw로 만든 외부 테이블은 원격 BigQuery 데이터에 대한 읽기 전용 참조입니다. 데이터의 로컬 사본을 만들려면 CREATE TABLE local_table AS (SELECT * FROM foreign_table) 쿼리를 실행하면 됩니다. 자세한 내용은 BigQuery 데이터를 AlloyDB로 가져오기를 참조하세요.

사용 사례

일회성 데이터 작업은 다음 사용 사례를 지원합니다.

  • 데이터 보강: BigQuery에서 AlloyDB로 사전 계산된 분석 출력 (예: 고객 세분화 버킷 또는 머신러닝 예측)을 가져와 운영 데이터베이스를 보강합니다.
  • 지연 시간이 짧은 애플리케이션 제공: BigQuery를 원격으로 쿼리하는 오버헤드 또는 지연 시간이 허용되지 않는 과거 데이터의 하위 집합에 즉시 액세스할 수 있도록 합니다.
  • 격리된 데이터 수정: 소스 데이터 세트와 독립적으로 처리, 수정 또는 색인화할 분석 데이터의 로컬 사본을 가져옵니다 (예: AlloyDB AI로 벡터 임베딩 생성).

주기적 테이블 동기화

주기적 작업은 반복 일정(예: 시간별 또는 일별)에 따라 데이터를 새로고침합니다. 테이블 동기화를 사용하거나 가져온 테이블에서 쿼리를 예약하여 주기적 작업을 설정할 수 있습니다.

테이블 동기화

alloydb_sync 확장 프로그램에서 alloydb_sync.create_bq_sync_table() 함수를 사용하여 자동 새로고침 일정을 설정할 수 있습니다. 이 함수는 백그라운드 작업자가 BigQuery에서 업데이트된 데이터를 주기적으로 가져오고 소스를 미러링하도록 로컬 AlloyDB 테이블을 새로고침하도록 구성합니다.

alloydb_sync로 만든 주기적 동기화 테이블은 관리되는 읽기 전용 테이블입니다. 이를 통해 데이터 무결성을 보장하면서 애플리케이션이 고성능으로 로컬에서 데이터를 쿼리하고 읽기 풀에서 수평으로 확장할 수 있습니다. 자세한 내용은 BigQuery 데이터를 AlloyDB에 동기화데이터 동기화 개요를 참조하세요.

테이블 가져오기

bigquery_fdw 확장 프로그램을 PostgreSQL pg_cron 확장 프로그램과 결합하여 주기적 가져오기를 설정할 수 있습니다. 이 접근 방식에서 bigquery_fdw는 읽기 전용 외부 테이블 정의를 제공하고 pg_cron은 SQL 쿼리 (예: TRUNCATEINSERT INTO ... SELECT 또는 테이블 다시 만들기)를 주기적으로 실행하여 로컬 테이블을 새로고침합니다.

동기화 테이블과 달리 이 접근 방식에서는 pg_cron 일정과 SQL 새로고침 스크립트를 수동으로 관리하고 유지보수해야 합니다. 자세한 내용은 데이터를 주기적으로 가져오는 일정 설정을 참조하세요.

사용 사례

주기적 작업은 다음 사용 사례를 지원합니다.

  • 높은 동시 연결 제공: 수천 명의 동시 사용자에게 분석 통계를 제공합니다. AlloyDB에서 로컬 데이터를 유지하고 읽기 풀로 확장하면 BigQuery에 내재된 동시 연결 제한을 우회할 수 있습니다.
  • 성능 가속화: 애플리케이션이 일정에 따라 업데이트된 데이터를 허용할 수 있는 최대 쿼리 성능을 위해 AlloyDB 열 기반 엔진과 로컬 버퍼 캐시를 사용하여 데이터를 처리합니다.
  • 자동 데이터 미러링: 설정 후 잊어버리는 일정에 따라 데이터 웨어하우스의 최신 데이터를 운영 애플리케이션에 제공합니다.

다음 단계