Firestore 파이프라인 작업 개요

Firestore 파이프라인 작업은 Firestore Enterprise 버전의 핵심 기능으로, 새로운 쿼리 엔진을 기반으로 빌드되어 가능한 쿼리의 범위를 크게 확장합니다. Firestore 파이프라인 작업은 유연한 쿼리 구문과 색인이 선택사항이며 자동으로 생성되지 않는 고유한 색인 생성 방법을 사용하여 애플리케이션의 고급 데이터 검색 작업을 지원합니다.

Firestore 파이프라인 작업의 기능

Firestore Enterprise 버전과 새로운 파이프라인 작업은 Firestore Standard 버전의 기존 제한사항을 많이 제거하는 새로운 고급 쿼리 엔진을 활용합니다. Firestore 파이프라인 작업은 120개 이상의 새로운 쿼리 기능을 제공합니다. Firestore 파이프라인 작업에는 다음과 같은 기능이 있습니다.

단계 기반 구성 가능한 구문

파이프라인 쿼리는 순서대로 실행되는 일련의 순차적 단계를 정의하여 구성됩니다. 이를 통해 이전에는 불가능했던 집계 결과를 필터링하는 등의 복잡한 작업을 수행할 수 있습니다.

다음 예는 지난 한 달 동안 조회된 고유 제품 ID 수를 찾는 파이프라인 쿼리를 보여줍니다.

guard let cutoffDate = Calendar.current.date(byAdding: .month, value: -1, to: Date()) else {
  return
}
let snapshot = try await db.pipeline()
  .collection("productViews")
  .where(Field("viewedAt").greaterThan(cutoffDate.timeIntervalSince1970))
  .aggregate([Field("productId").countDistinct().as("uniqueProductViews")])
  .execute()

확장된 기능

파이프라인 쿼리에는 다음과 같은 다양한 새로운 기능이 도입되었습니다.

  • 집계: 임의의 그룹화 필드와 결합된 새로운 집계 함수(예: sum(...), min(...), count_distinct(...))를 지원합니다.
  • 복잡한 필터링: regex_match(...), add(...), str_contains(...)를 비롯한 임의로 복잡한 where(...) 문을 표현하는 120개 이상의 새로운 함수를 지원하며, 모두 하드 색인 요구사항이 없습니다.
  • 부분 읽기 / 예측: select(...), remove_fields(...) 및 기타 여러 문서 조작 단계를 사용하여 문서의 동적 하위 집합을 가져옵니다.

실시간 및 오프라인 지원

실시간 및 오프라인을 활용하기 위해 개발자는 Firestore Enterprise 버전에서 Firestore 핵심 작업을 활용할 수 있습니다.

클라이언트 및 도구 통합

Enterprise 버전에는 파이프라인 쿼리와 상호작용하고 이를 관리하는 전문 기능이 포함되어 있습니다.

  • 쿼리 설명 및 프로파일링: 쿼리 설명 결과를 사용하여 쿼리가 소비하는 읽기 또는 쓰기 단위 수를 파악하고 실행을 분석할 수 있습니다.
  • 쿼리 통계: Enterprise 버전은 쿼리 성능 특성을 파악하여 성능과 비용을 개선하기 위해 색인을 생성할 수 있는 위치를 결정하는 데 도움이 되는 쿼리 통계를 지원합니다.
  • 새 색인 유형: 희소 색인을 비롯한 Enterprise 버전용 전문 색인을 만들 수 있습니다. 또한 Enterprise 데이터베이스의 벡터 검색 색인을 생성하고 수정하는 기능도 지원합니다.

Firestore Standard와 Firestore Enterprise의 차이점

핵심 작업과 파이프라인 작업 간의 주요 운영 차이점은 색인 관리에 있으며, 이는 성능과 비용에 직접적인 영향을 미칩니다.

Firestore Standard - 핵심 작업 Firestore Enterprise - 핵심 및 파이프라인 작업
색인 생성 요구사항 쿼리에는 색인이 필요합니다.

개별 필드의 색인은 자동으로 생성되지만, 더 복잡한 쿼리는 수동으로 구성해야 하는 복합 색인 또는 컬렉션 그룹 색인을 사용합니다.

색인이 필요하지 않으므로 쿼리에 선택사항입니다.

필요에 따라 색인을 정의합니다. Enterprise 버전은 비희소/희소 및 고유 색인을 비롯한 더 광범위한 색인 유형도 지원합니다.

성능 위험 색인이 생성된 쿼리: 성능과 비용이 결과 세트의 크기에 따라 변합니다.

색인이 생성되지 않은 쿼리: 성능과 비용이 데이터 세트의 크기에 따라 변합니다.

색인이 생성된 쿼리: 성능과 비용이 결과 세트의 크기에 따라 변합니다.

쿼리 설명 및 쿼리 통계 도구를 사용하여 색인을 만들고 쿼리의 성능과 비용을 개선하는 것이 좋습니다.

스토리지 비용 영향 자동 색인과 복합 색인으로 인해 스토리지 오버헤드가 발생합니다. 모든 필드에 색인이 자동으로 생성되지 않으므로 스토리지 비용을 절약할 수 있습니다.
비용 기준 문서 읽기, 쓰기, 삭제 작업별로 요금이 청구됩니다. 읽기 단위(4KB 단위) 및 쓰기 단위(1KB 단위)당 요금이 청구됩니다. 색인 항목을 작성하면 쓰기 단위가 사용됩니다.

예시를 통해 새로운 가격 책정을 알아보세요.

보안 규칙 보안 규칙은 읽기/쓰기 권한을 확인하여 컬렉션을 보호합니다. 보안 규칙은 읽기/쓰기 권한을 확인하여 컬렉션을 보호합니다. 데이터 모델 가이드에서 파이프라인 쿼리를 지원하도록 데이터를 모델링하는 방법을 알아보세요.