Share via


Azure Cosmos DB for PostgreSQL에서 분할된 데이터베이스 수 선택

적용 대상: Azure Cosmos DB for PostgreSQL(PostgreSQL에 대한 Citus 데이터베이스 확장 기반)

각 분산 테이블에 대해 분할된 데이터베이스 수를 선택할 때는 분할된 데이터베이스를 더 많이 보유하는 유연성과 분할된 데이터베이스에 대한 쿼리 계획 및 실행에 따른 오버헤드 간의 균형을 고려해야 합니다. 배포 후 테이블의 분할된 데이터베이스 수를 변경하려는 경우 alter_distributed_table 함수를 사용할 수 있습니다.

다중 테넌트 SaaS 사용 사례

최적의 선택은 데이터에 대한 액세스 패턴에 따라 달라집니다. 예를 들어 다중 테넌트 SaaS 데이터베이스 사용 사례에서는 32~128개의 분할된 데이터베이스 중에서 선택하는 것이 좋습니다. <100GB의 더 작은 워크로드에서는 32개의 분할된 데이터베이스로 시작하고 더 큰 워크로드에서는 64 또는 128을 선택할 수 있습니다. 이렇게 선택하면 32~128대의 작업자 컴퓨터로 스케일링할 수 있는 여유가 있습니다.

실시간 분석 사용 사례

실시간 분석 사용 사례에서 분할된 데이터베이스 수는 작업자의 총 코어 수와 관련이 있습니다. 최대 병렬 처리를 보장하려면 CPU 코어당 하나 이상의 분할된 데이터베이스가 있도록 각 노드에 충분한 수의 분할된 데이터베이스를 만들어야 합니다. 일반적으로 현재 CPU 코어 수의 2배 또는 4배와 같은 많은 수의 초기 분할된 데이터베이스를 만드는 것이 좋습니다. 더 많은 분할된 데이터베이스를 사용하면 작업자 및 CPU 코어를 더 추가하는 경우 향후 스케일링이 가능합니다.

각 쿼리에 대해 Azure Cosmos DB for PostgreSQL은 분할된 데이터베이스당 하나의 데이터베이스 연결을 열고 이러한 연결은 제한됩니다. 분할된 데이터베이스 수를 분산 쿼리가 연결을 기다릴 필요가 없을 정도로 충분히 작게 유지해야 합니다. 다시 말해서, 필요한 연결 (max concurrent queries * shard count)는 시스템에서 가능한 총 연결 수인 (number of workers * max_connections per worker)를 초과하면 안 됩니다.

다음 단계