쿼리 인터페이스 개요

이 페이지에서는 네이티브 모드의 Firestore 데이터베이스에서 데이터에 액세스하는 데 사용할 수 있는 다양한 인터페이스를 설명합니다.

작업 인터페이스

네이티브 모드는 데이터 액세스를 위한 두 가지 인터페이스를 지원합니다.

파이프라인 작업

Firestore의 최신 쿼리 인터페이스입니다. 파이프라인 작업은 단계 기반 구성 가능한 구문을 지원합니다. 순서대로 실행되는 일련의 순차적 단계를 정의하여 작업을 구성합니다. 이를 통해 이전에는 원래 인터페이스(핵심 작업)에서 불가능했던 집계 결과를 필터링하는 등의 복잡한 작업을 수행할 수 있습니다.

파이프라인 작업은 Cloud Firestore Enterprise 버전에서만 사용할 수 있으며 프리뷰 출시 단계에 있습니다.

핵심 작업

핵심 작업은 Firestore의 원래 인터페이스입니다. 핵심 작업은 문서 또는 컬렉션 참조에서 메서드 체이닝 구문 (.where(), .orderBy(), .get())을 사용하여 문서를 가져옵니다. 쿼리 단계의 순서는 암시적이며 집계 지원은 제한됩니다.

핵심 작업은 Enterprise 버전과 Standard 버전 모두에서 사용할 수 있지만 버전 간 색인 기본값이 매우 다릅니다. 자세한 내용은 다음 섹션을 참고하세요.

버전 간 인터페이스 차이

Enterprise 버전에서 네이티브 모드 지원이 도입됨에 따라 Firestore 핵심 및 파이프라인 작업을 모두 사용할 수 있습니다. Enterprise 버전에서 핵심 작업을 사용하면 새로운 색인 동작과 가격 책정 모델을 통해 Standard 버전의 제한사항이 많이 제거됩니다.

기능 Standard 버전 Enterprise 버전
지원되는 작업 Firestore Core 작업으로 제한됩니다. Firestore 핵심 및 파이프라인 작업과 Firestore MongoDB 호환성 작업을 지원합니다.
색인 생성 요구사항 모든 쿼리에는 색인이 필요합니다. 쿼리에는 색인이 필요하지 않습니다.
색인 생성 단일 필드에 자동 색인이 생성됩니다. 복합 색인을 수동으로 만들 수 있습니다. 자동 색인이 생성되지 않습니다. 색인을 수동으로 관리해야 합니다.
색인 생성된 필드 __name__ 필드가 아직 없는 경우 색인이 생성된 필드에 자동으로 추가됩니다. __name__은 색인이 생성된 필드에 자동으로 추가되지 않습니다. 애플리케이션에 중요한 경우 색인이 생성된 필드에 __name__을 명시적으로 지정해야 합니다.
정렬 순서 정규화 쿼리의 order by 절은 부등식 필드와 __name__ 필드를 끝에 추가하여 정규화됩니다 (아직 없는 경우). 이렇게 하면 order by 절에 다른 필드가 있더라도 결과의 고유하고 결정적인 순서가 보장됩니다. 정렬 순서 정규화가 없습니다. sort a ASC와 같은 정렬 순서는 결과가 a 필드를 기준으로 정렬된다는 것만 보장합니다. Firestore는 기존 색인을 사용하여 가능한 가장 효율적인 순서로 결과를 반환합니다. 따라서 a가 결과 집합에서 고유하지 않으면 색인 구성, 실행 전략 등에 따라 쿼리마다 결과의 순서가 달라질 수 있습니다. 결과의 고유하고 결정적인 순서를 보장하려면 __name__과 같은 고유한 필드를 정렬 순서에 추가해야 합니다.
쿼리 성능 및 비용 색인 요구사항으로 인해 일반적으로 쿼리 성능이 우수합니다. 색인을 만들어 쿼리 성능과 비용을 최적화합니다. Query Explain 및 쿼리 통계를 사용하여 누락된 색인을 식별할 수 있습니다.

색인이 없는 쿼리는 데이터 세트가 커짐에 따라 성능이 저하되고 비용이 많이 들 수 있으므로 모니터링 및 조정이 필요합니다.

색인 생성 오버헤드 비용 색인은 자동으로 생성되므로 색인 쓰기에는 요금이 청구되지 않습니다. 연결된 문서가 작성되면 색인 항목을 작성할 때 쓰기 단위가 사용됩니다(색인 항목 크기의 1KiB당 쓰기 단위 1개). 모든 필드에 색인 항목을 만들지 않으면 스토리지 비용을 절약할 수 있습니다.
청구 모델(읽기/쓰기/삭제) 문서 읽기, 쓰기, 삭제당 요금이 청구됩니다. 읽기 및 쓰기당(단위) 요금이 청구됩니다. 읽기는 읽기 단위(4KiB 단위)로 요금이 청구됩니다. 쓰기 및 삭제는 쓰기 단위(1KiB 단위)로 병합됩니다.
기본 가격 (백만 개당)

표시된 가격은 us-central1 리전의 가격입니다.

읽기: 문서 100,000개당 $0.03(또는 백만 개당 $0.30)

쓰기: 문서 100,000개당 $0.09(또는 백만 개당 $0.90)

삭제: 문서 100,000개당 $0.01(또는 백만 개당 $0.10)

읽기 단위: 읽기 단위 100만 개당 $0.05

쓰기 단위: 쓰기 단위 100만 개당 $0.26 일반적으로 문서가 4KiB 미만인 경우 가격이 Standard 읽기 비용보다 저렴합니다.

실시간 업데이트

표시된 가격은 us-central1 리전의 가격입니다.

실시간 업데이트는 문서 100,000개당 $0.03의 읽기로 청구됩니다. 실시간 업데이트에는 4KiB 단위당 요금이 청구되는 새로운 별도의 SKU(실시간 업데이트 단위)가 있습니다. 실시간 업데이트 비용은 읽기 단위 100만 개당 $0.30입니다.

다음 단계