이 페이지에서는 Spanner 변경 내역을 만들고, 수정, 확인하는 방법을 설명합니다. 변경 내역에 대한 자세한 내용은 변경 내역 정보를 참조하세요.
변경 내역은 스키마 객체이기 때문에 테이블 만들기 또는 색인 추가와 같이 다른 종류의 데이터베이스 정의 작업에 사용되는 것과 동일한 DDL 기반의 스키마 업데이트를 통해 만들고 관리할 수 있습니다.
Spanner는 변경 스트림 만들기, 수정, 삭제에 사용되는 것을 포함하여 스키마 변경 DLL 문을 제출한 후 장기 실행 작업을 시작합니다. 새로운 또는 수정된 변경 스트림은 이 장기 실행 작업이 완료된 후 새 구성으로 지정된 열 또는 테이블을 감시하기 시작합니다.
변경 스트림 만들기
변경 스트림을 만들려면 전체 데이터베이스 또는 특정 테이블과 열 목록 중 하나인 감시되는 해당 이름 및 스키마 객체를 제공해야 합니다. 선택 사항으로 다음을 지정할 수 있습니다.
- 보관 기간: 1일 기본 보관 기간 재정의
- 값 캡처 유형: 기본값 캡처 유형
OLD_AND_NEW_VALUES
재정의 - TTL 기반 삭제 필터: 변경 내역에서 TTL 기반 삭제를 필터링하려는 경우
테이블 수정 제외:
INSERT
,UPDATE
또는DELETE
테이블 수정사항을 모두 제외
GoogleSQL
GoogleSQL을 사용하여 변경 내역을 만들기 위한 DDL 구문은 다음과 같습니다.
CREATE CHANGE STREAM change_stream_name [FOR column_or_table_watching_definition[, ... ] ] [ OPTIONS ( retention_period = timespan, value_capture_type = type, exclude_ttl_deletes = boolean, exclude_insert = boolean, exclude_update = boolean, exclude_delete = boolean ) ]
PostgreSQL
PostgreSQL을 사용하여 변경 내역을 만들기 위한 DDL 구문은 다음과 같습니다.
CREATE CHANGE STREAM change_stream_name [FOR column_or_table_watching_definition[, ... ] ] [ WITH ( retention_period = timespan, value_capture_type = type, exclude_ttl_deletes = boolean, exclude_insert = boolean, exclude_update = boolean, exclude_delete = boolean ) ]
새 변경 스트림은 이를 만든 장기 실행 작업이 완료되는 즉시 할당된 스키마 객체 감시를 시작합니다.
다음 예시에서는 여러 구성에 따른 변경 스트림 만들기를 보여줍니다.
전체 데이터베이스 감시
데이터베이스 테이블을 통해 수행되는 모든 데이터 변경을 감시하는 변경 스트림을 만들려면 ALL
키워드를 사용합니다.
CREATE CHANGE STREAM EverythingStream
FOR ALL;
ALL
구성에는 생성되는 즉시 모든 데이터베이스의 이후 데이터 테이블 및 열이 암시적으로 포함됩니다. 일반적인 데이터 테이블을 제외한 보기, 정보 스키마 테이블 또는 기타 객체는 여기에 포함되지 않습니다.
특정 테이블 감시
전체 데이터베이스가 아니라 변경 스트림 범위를 특정 테이블로 제한하려면 하나 이상의 테이블 목록을 지정합니다.
CREATE CHANGE STREAM SingerAlbumStream
FOR Singers, Albums;
Spanner는 추가되었거나 삭제된 열과 같이 해당 테이블에 영향을 주는 모든 스키마 변경사항을 반영하도록 전체 테이블을 감시하는 변경 스트림을 자동으로 업데이트합니다.
특정 열 감시
table(column_1[, column_2,
...])
구문을 사용하여 지정한 테이블 내에서 하나 이상의 특정 키 열 이외의 열에 대한 변경사항을 감시할 수 있습니다.
CREATE CHANGE STREAM NamesAndTitles
FOR Singers(FirstName, LastName), Albums(Title);
모든 변경 스트림이 감시되는 모든 테이블의 기본 키를 항상 추적하기 때문에 여기에서 기본 키 열을 지정할 수 없습니다. 이렇게 하면 모든 데이터 변경 레코드가 기본 키에 따라 변경된 행을 식별할 수 있습니다.
단일 스트림에서 테이블 및 열 감시
이전 2개 예시에서 테이블 감시 및 열 감시 구문을 단일 변경 스트림으로 조합할 수 있습니다.
CREATE CHANGE STREAM NamesAndAlbums
FOR Singers(FirstName, LastName), Albums;
더 긴 보관 기간 지정
변경 내역 데이터 보관 기간을 기본값 1일보다 더 오랜 기간으로 지정하려면 시간(h
) 또는 일(d
) 단위를 사용해서 retention_period
를 최대 1주일까지 설정합니다.
두 가지 예시는 다음과 같습니다.
GoogleSQL
CREATE CHANGE STREAM LongerDataRetention
FOR ALL
OPTIONS ( retention_period = '36h' );
CREATE CHANGE STREAM MaximumDataRetention
FOR ALL
OPTIONS ( retention_period = '7d' );
PostgreSQL
CREATE CHANGE STREAM LongerDataRetention
FOR ALL
WITH ( retention_period = '36h' );
CREATE CHANGE STREAM MaximumDataRetention
FOR ALL
WITH ( retention_period = '7d' );
다른 값 캡처 유형 지정
OLD_AND_NEW_VALUES
이외의 변경 내역 값 캡처 유형을 지정하려면 다음 예시와 같이 value_capture_type
을 NEW_VALUES
또는 NEW_ROW
로 설정합니다.
GoogleSQL
CREATE CHANGE STREAM NewRowChangeStream
FOR ALL
OPTIONS ( value_capture_type = 'NEW_ROW' );
CREATE CHANGE STREAM NewValuesChangeStream
FOR ALL
OPTIONS ( value_capture_type = 'NEW_VALUES' );
PostgreSQL
CREATE CHANGE STREAM NewRowChangeStream
FOR ALL
WITH ( value_capture_type = 'NEW_ROW' );
CREATE CHANGE STREAM NewValuesChangeStream
FOR ALL
WITH ( value_capture_type = 'NEW_VALUES' );
TTL 기반 삭제 필터링
exclude_ttl_deletes
필터를 사용하여 변경 내역 범위에서 TTL 기반 삭제를 필터링할 수 있습니다.
이 필터의 작동 방식에 대한 자세한 내용은 TTL(수명) 기반 삭제 필터를 참조하세요.
GoogleSQL
TTL 기반 삭제 필터를 사용하여 변경 내역을 만들려면 다음을 사용합니다.
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (exclude_ttl_deletes = true)
다음을 바꿉니다.
- CHANGE_STREAM_NAME: 새 변경 내역의 이름입니다.
다음 예시에서는 모든 TTL 기반 삭제를 제외하는 NewFilterChangeStream
이라는 변경 내역을 만듭니다.
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
OPTIONS (exclude_ttl_deletes = true)
PostgreSQL
TTL 기반 삭제 필터를 사용하여 변경 내역을 만들려면 다음을 사용합니다.
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
WITH (exclude_ttl_deletes = true)
다음을 바꿉니다.
- STREAM_NAME: 새 변경 내역의 이름입니다.
다음 예시에서는 모든 TTL 기반 삭제를 제외하는 NewFilterChangeStream
이라는 변경 내역을 만듭니다.
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
WITH (exclude_ttl_deletes = true)
기존 변경 내역에서 TTL 기반 삭제 필터를 추가하거나 삭제하려면 TTL 기반 삭제 필터 수정을 참조하세요. DDL로 변경 내역 정의를 확인하여 변경 내역 필터를 확인할 수 있습니다.
테이블 수정 유형별로 필터링
사용 가능한 다음 필터 옵션을 사용하여 변경 내역의 범위에서 이러한 테이블 수정사항 중 하나 이상을 필터링합니다.
exclude_insert
: 모든INSERT
테이블 수정사항을 제외합니다.exclude_update
: 모든UPDATE
테이블 수정사항을 제외합니다.exclude_delete
: 모든DELETE
테이블 수정사항을 제외합니다.
이러한 필터의 작동 방식에 대한 자세한 내용은 테이블 수정 유형 필터를 참조하세요.
GoogleSQL
테이블 수정 유형 필터가 하나 이상 있는 변경 내역을 만들려면 다음을 사용하세요.
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (MOD_TYPE_FILTER_NAME = true)
다음을 바꿉니다.
- CHANGE_STREAM_NAME: 새 변경 내역의 이름입니다.
- MOD_TYPE_FILTER_NAME: 추가하려는 필터(
exclude_insert
,exclude_update
또는exclude_delete
)입니다. 한 번에 두 개 이상의 필터를 추가하는 경우 각 필터를 쉼표로 구분합니다.
다음 예시에서는 INSERT
및 UPDATE
테이블 수정 유형을 제외하는 NewFilterChangeStream
이라는 변경 내역을 만듭니다.
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
OPTIONS (exclude_insert = true, exclude_update = true)
PostgreSQL
테이블 수정 유형 필터가 하나 이상 있는 변경 내역을 만들려면 다음을 사용하세요.
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
WITH (MOD_TYPE_FILTER_NAME = true)
다음을 바꿉니다.
- CHANGE_STREAM_NAME: 기존 변경 내역의 이름입니다.
- MOD_TYPE_FILTER_NAME: 추가하려는 필터(
exclude_insert
,exclude_update
또는exclude_delete
)입니다. 한 번에 두 개 이상의 필터를 추가하는 경우 각 필터를 쉼표로 구분합니다.
다음 예시에서는 INSERT
및 UPDATE
테이블 수정 트랜잭션 유형을 제외하는 NewFilterChangeStream
이라는 변경 내역을 만듭니다.
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
WITH (exclude_insert = true, exclude_update = true)
기존 변경 내역에서 테이블 수정 유형 필터를 추가하거나 삭제하려면 테이블 수정 유형별 필터 수정을 참조하세요. DDL로 변경 내역 정의를 확인하여 변경 내역에 대한 테이블 수정 유형 필터를 확인할 수 있습니다.
변경 스트림 수정
변경 스트림 구성을 수정하려면 ALTER CHANGE STREAM
DDL 문을 사용합니다. 여기에는 CREATE CHANGE STREAM
과 비슷한 구문이 사용됩니다. 스트림이 감시하는 열 또는 데이터 보관 기간의 길이를 변경할 수 있습니다. 또한 데이터 변경 레코드를 보존하는 동안 감시도 함께 일시중지할 수 있습니다.
변경 스트림 감시 대상 수정
이 예시에서는 앞에서 구성된 NamesAndAlbums
변경 스트림에 전체 Songs
테이블을 추가합니다.
ALTER CHANGE STREAM NamesAndAlbums
SET FOR Singers(FirstName, LastName), Albums, Songs;
Spanner는 데이터베이스 스키마 내에서 변경 스트림 정의를 업데이트하는 장기 실행 작업이 완료되었을 때 이름 지정된 변경 스트림의 동작을 새 구성으로 바꿉니다.
변경 내역의 데이터 보관 기간 수정
변경 내역에 내부 레코드가 보관되는 기간을 수정하려면 ALTER CHANGE STREAM
DDL 문에서 retention_period
를 설정합니다.
이 예시에서는 이전에 생성된 NamesAndAlbums
변경 스트림에 맞게 데이터 보관 기간을 조정합니다.
GoogleSQL
ALTER CHANGE STREAM NamesAndAlbums
SET OPTIONS ( retention_period = '36h' );
PostgreSQL
ALTER CHANGE STREAM NamesAndAlbums
SET ( retention_period = '36h' );
변경 내역의 값 캡처 유형 수정
변경 내역의 값 캡처 유형을 수정하려면 ALTER CHANGE STREAM
DDL 문에서 value_capture_type
절을 설정합니다.
이 예시에서는 값 캡처 유형을 NEW_VALUES
로 조정합니다.
GoogleSQL
ALTER CHANGE STREAM NamesAndAlbums
SET OPTIONS ( value_capture_type = 'NEW_VALUES' );
PostgreSQL
ALTER CHANGE STREAM NamesAndAlbums
SET ( value_capture_type = 'NEW_VALUES' );
TTL 기반 삭제 필터 수정
변경 내역에서 TTL 기반 삭제 필터를 수정하려면 ALTER CHANGE STREAM
DDL 문에서 exclude_ttl_deletes
필터를 설정합니다. 이를 사용하여 기존 변경 내역에 필터를 추가하거나 삭제할 수 있습니다.
이러한 필터의 작동 방식에 대한 자세한 내용은 TTL 기반 삭제 필터를 참조하세요.
기존 변경 내역에 TTL 기반 삭제 필터 추가
GoogleSQL
기존 변경 내역에서 TTL 기반 삭제 필터를 추가하려면 다음을 사용하여 필터를 true
로 설정합니다.
ALTER CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
SET OPTIONS (exclude_ttl_deletes = true)
다음을 바꿉니다.
- CHANGE_STREAM_NAME: 기존 변경 내역의 이름입니다.
다음 예시에서는 exclude_ttl_deletes
필터가 모든 TTL 기반 삭제를 제외하는 NewFilterChangeStream
이라는 기존 변경 내역에 추가됩니다.
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET OPTIONS (exclude_ttl_deletes = true)
이렇게 하면 변경 내역에서 모든 TTL 기반 삭제가 제외됩니다.
PostgreSQL
기존 변경 내역에서 TTL 기반 삭제 필터를 추가하려면 다음을 사용하여 필터를 True
로 설정합니다.
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET (exclude_ttl_deletes = true)
다음을 바꿉니다.
- STREAM_NAME: 기존 변경 내역의 이름입니다.
다음 예시에서는 exclude_ttl_deletes
필터가 NewFilterChangeStream
이라는 기존 변경 내역에 추가됩니다.
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = true)
이렇게 하면 향후 모든 TTL 기반 삭제가 변경 내역에서 제외됩니다.
기존 변경 내역에서 TTL 기반 삭제 필터 삭제
GoogleSQL
기존 변경 내역에서 TTL 기반 삭제 필터를 삭제하려면 다음을 사용하여 필터를 False
로 설정합니다.
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET OPTIONS (exclude_ttl_deletes = false)
다음을 바꿉니다.
- STREAM_NAME: 새 변경 내역의 이름입니다.
다음 예시에서는 NewFilterChangeStream
이라는 기존 변경 내역에서 exclude_ttl_deletes
필터가 삭제됩니다.
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET OPTIONS (exclude_ttl_deletes = false)
여기에는 향후 변경 내역에 대한 모든 TTL 기반 삭제가 포함됩니다.
필터를 null
로 설정하여 TTL 기반 삭제 필터를 삭제할 수도 있습니다.
PostgreSQL
기존 변경 내역에서 TTL 기반 삭제 필터를 삭제하려면 다음을 사용하여 필터를 False
로 설정합니다.
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET (exclude_ttl_deletes = false)
다음을 바꿉니다.
- STREAM_NAME: 새 변경 내역의 이름입니다.
다음 예시에서는 NewFilterChangeStream
이라는 기존 변경 내역에서 exclude_ttl_deletes
필터가 삭제됩니다.
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = false)
여기에는 향후 변경 내역에 대한 모든 TTL 기반 삭제가 포함됩니다.
필터를 null
로 설정하여 TTL 기반 삭제 필터를 삭제할 수도 있습니다.
테이블 수정 유형별로 필터 수정
변경 내역에서 테이블 수정 유형 필터를 수정하려면 ALTER CHANGE STREAM
DDL 문에서 필터 유형을 설정합니다. 이를 사용하여 변경 내역에 새 필터를 추가하거나 기존 필터를 삭제할 수 있습니다.
기존 변경 내역에 테이블 수정 유형 필터 추가
GoogleSQL
기존 변경 내역에 하나 이상의 새 테이블 수정 유형 필터를 추가하려면 다음을 사용하여 필터를 true
로 설정합니다.
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET OPTIONS (MOD_TYPE_FILTER_NAME = true)
다음을 바꿉니다.
- CHANGE_STREAM_NAME: 기존 변경 내역의 이름으로 바꿉니다.
- MOD_TYPE_FILTER_NAME: 추가하려는 필터(
exclude_insert
,exclude_update
또는exclude_delete
)로 바꿉니다. 한 번에 두 개 이상의 필터를 추가하는 경우 각 필터를 쉼표로 구분합니다.
다음 예시에서는 exclude_delete
필터가 NewFilterChangeStream
이라는 기존 변경 내역에 추가됩니다.
ALTER CHANGE STREAM NewFilterChangeStream
SET OPTIONS (exclude_delete = true)
PostgreSQL
기존 변경 내역에 하나 이상의 새 테이블 수정 유형 필터를 추가하려면 다음을 사용하여 필터를 true
로 설정합니다.
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET (MOD_TYPE_FILTER_NAME = true)
다음을 바꿉니다.
- CHANGE_STREAM_NAME: 기존 변경 내역의 이름으로 바꿉니다.
- MOD_TYPE_FILTER_NAME: 추가하려는 필터(
exclude_insert
,exclude_update
또는exclude_delete
)로 바꿉니다. 한 번에 두 개 이상의 필터를 추가하는 경우 각 필터를 쉼표로 구분합니다.
다음 예시에서는 exclude_delete
필터가 NewFilterChangeStream
이라는 기존 변경 내역에 추가됩니다.
ALTER CHANGE STREAM NewFilterChangeStream
SET (exclude_delete = true)
기존 변경 내역에서 테이블 수정 유형 필터 삭제
GoogleSQL
변경 내역에서 기존 테이블 수정 유형 필터 중 하나 이상을 삭제하려면 다음을 사용하여 필터를 false
로 설정합니다.
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET OPTIONS (MOD_TYPE_FILTER_NAME = false)
다음을 바꿉니다.
- CHANGE_STREAM_NAME: 기존 변경 내역의 이름으로 바꿉니다.
- MOD_TYPE_FILTER_NAME: 삭제하려는 필터(
exclude_insert
,exclude_update
또는exclude_delete
)로 바꿉니다. 한 번에 두 개 이상의 필터를 삭제하는 경우 각 필터를 쉼표로 구분합니다.
다음 예시에서는 NewFilterChangeStream
이라는 기존 변경 내역에서 exclude_delete
필터가 삭제됩니다.
ALTER CHANGE STREAM NewFilterChangeStream
SET OPTIONS (exclude_delete = false)
필터를 기본값으로 다시 설정하여 테이블 수정 필터를 삭제할 수도 있습니다. 이렇게 하려면 필터 값을 null
로 설정합니다.
PostgreSQL
변경 내역에서 기존 테이블 수정 유형 필터 중 하나 이상을 삭제하려면 다음을 사용하여 필터를 False
로 설정합니다.
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET (MOD_TYPE_FILTER_NAME = false)
다음을 바꿉니다.
- CHANGE_STREAM_NAME: 기존 변경 내역의 이름으로 바꿉니다.
- MOD_TYPE_FILTER_NAME: 추가하려는 필터(
exclude_insert
,exclude_update
또는exclude_delete
)로 바꿉니다. 한 번에 두 개 이상의 필터를 추가하는 경우 각 필터를 쉼표로 구분합니다.
다음 예시에서는 NewFilterChangeStream
이라는 기존 변경 내역에서 exclude_delete
필터가 삭제됩니다.
ALTER CHANGE STREAM NewFilterChangeStream
SET (exclude_delete = false)
필터를 기본값으로 다시 설정하여 테이블 수정 필터를 삭제할 수도 있습니다. 이렇게 하려면 필터 값을 null
로 설정합니다.
변경 스트림 일시중지
변경 스트림이 해당 활동을 중지하지만 내부 레코드는 최소한 데이터 보관 기간 이상 동안 보존하게 하려면 아무 것도 감시하지 않도록 수정할 수 있습니다.
이렇게 하려면 변경 스트림 정의를 특수 구문인 DROP FOR ALL
로 바꾸는 ALTER CHANGE STREAM
DDL 문을 실행합니다.
예를 들면 다음과 같습니다.
ALTER CHANGE STREAM MyStream DROP FOR ALL;
스트림이 계속 존재하지만 아무 객체도 감시하지 않고 추가 데이터 변경 레코드를 생성하지 않습니다. 기존 변경 레코드는 그대로 유지되고 스트림 데이터 보관 정책이 적용됩니다.
일시중지된 스트림을 재개하려면 이전 구성을 사용하여 또 다른 ALTER CHANGE STREAM
문을 실행합니다.
변경 스트림 삭제
변경 스트림을 영구적으로 삭제하려면 스트림 이름이 포함된 DROP CHANGE STREAM
문을 실행합니다.
DROP CHANGE STREAM NamesAndAlbums;
Spanner가 스트림을 즉시 중지하고, 데이터베이스 스키마에서 이를 삭제하고, 해당 데이터 변경 레코드를 삭제합니다.
변경 스트림 나열 및 보기
Google Cloud console은 데이터베이스의 변경 스트림 정의를 나열하고 검토하기 위한 웹 인터페이스를 제공합니다. 또한 상응하는 DDL 문으로 또는 데이터베이스 정보 스키마를 쿼리하여 변경 스트림 구조를 볼 수 있습니다.
Google Cloud 콘솔로 변경 내역 보기
데이터베이스의 변경 스트림 목록을 보고 해당 정의를 검토하려면 다음 안내를 따르세요.
Google Cloud console의 Spanner 인스턴스 페이지로 이동합니다.
적합한 인스턴스 및 데이터베이스로 이동합니다.
탐색 메뉴에서 변경 스트림을 클릭합니다.
그러면 데이터베이스의 모든 변경 스트림 목록과 각 항목의 구성이 간단히 표시됩니다. 스트림 이름을 클릭하면 감시하는 테이블 및 열에 대한 추가 세부정보가 표시됩니다.
변경 스트림 정의를 DDL로 보기
데이터베이스 스키마를 DDL로 보기에는 CREATE CHANGE STREAM
문으로 표시되는 모든 변경 스트림 설명이 포함됩니다.
콘솔에서 이를 수행하려면 Google Cloud console의 데이터베이스 페이지에서 해당 DDL 표시 링크를 클릭합니다.
명령줄에서 이를 수행하려면 Google Cloud CLI의
ddl describe
명령어를 사용합니다.
변경 스트림에 대한 정보 스키마 쿼리
해당 변경 스키마에 대해 데이터베이스의 정보 스키마를 직접 쿼리할 수 있습니다. 다음 테이블에는 변경 스트림 이름, 감시되는 테이블 및 열, 해당 보관 기간을 정의하는 메타데이터가 포함되어 있습니다.
변경 내역 권장사항
다음은 변경 내역을 구성하고 관리하기 위한 권장사항입니다.
별도의 메타데이터 데이터베이스 고려
변경 내역은 메타데이터 데이터베이스를 사용하여 내부 상태를 유지합니다. 메타데이터 데이터베이스는 변경 내역이 포함된 데이터베이스와 동일하거나 다를 수 있습니다. 메타데이터 스토리지용 데이터베이스를 별도로 만드는 것이 좋습니다.
Spanner 변경 스트림 커넥터는 메타데이터 데이터베이스에 대해 읽기-쓰기 권한이 필요합니다. 스키마와 함께 이 데이터베이스 준비는 커넥터에서 자동으로 수행됩니다.
개별 메타데이터 데이터베이스를 사용하면 커넥터가 애플리케이션 데이터베이스에 직접 쓰기를 수행하도록 허용할 때 발생할 수 있는 복잡한 문제가 없어집니다.
변경 내역을 포함하는 프로덕션 데이터베이스에서 메타데이터 데이터베이스를 분리하면 커넥터에 프로덕션 데이터베이스에 대한 읽기 권한만 있으면 됩니다.
커넥터 트래픽을 개별 메타데이터 데이터베이스로 제한하면 커넥터 자체에 수행되는 쓰기가 프로덕션 변경 내역에 포함되지 않습니다. 특히 전체 데이터베이스를 감시하는 변경 내역에 해당하는 설명입니다.
메타데이터 저장을 위해 개별 데이터베이스를 사용하지 않을 때는 해당 인스턴스에서 변경 스트림 커넥터로 인한 CPU 영향을 모니터링하는 것이 좋습니다.
새 변경 내역을 벤치마킹하고 필요한 경우 크기 조절
새 변경 내역을 프로덕션 인스턴스에 추가하기 전 변경 내역이 사용 설정된 스테이징 인스턴스에서 실제 워크로드를 벤치마크하는 것이 좋습니다. 이렇게 하면 컴퓨팅 및 스토리지 용량 증가를 위해 인스턴스에 노드를 추가해야 하는지 여부를 결정할 수 있습니다.
CPU 및 스토리지 측정항목이 안정화될 때까지 테스트를 실행합니다. 이상적으로는 인스턴스의 CPU 사용률을 권장 최댓값 미만으로 유지하고 스토리지 사용이 인스턴스의 스토리지 제한을 초과하지 않아야 합니다.
부하 분산에 다른 리전 사용
멀티 리전 인스턴스 구성에서 변경 내역을 사용할 때는 기본 리더 리전이 아닌 다른 리전에서 처리 파이프라인을 실행하는 것이 좋습니다. 이렇게 하면 리더가 아닌 복제본 간에 스트리밍 부하를 분산하는 데 도움이 됩니다. 그러나 부하 분산보다는 가능한 한 최소한의 스트리밍 지연을 우선시해야 하는 경우 리더 리전에서 스트리밍 부하를 실행합니다.
다음 단계
템플릿을 사용하여 변경 내역을 BigQuery, Cloud Storage 또는 Pub/Sub에 빠르게 연결하기