AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

일괄 읽기 구성 옵션

배치 모드로 MongoDB에서 데이터를 읽을 때 다음 속성을 구성할 수 있습니다.

참고

SparkConf을(를) 사용하여 커넥터의 읽기 구성을 설정하는 경우 각 속성 앞에 spark.mongodb.read.을(를) 접두사로 붙입니다.

속성 이름
설명

connection.uri

필수 사항입니다.
연결 문자열 구성 키입니다.

기본값: mongodb://localhost:27017/

database

필수 사항입니다.
데이터베이스 이름 구성입니다.

collection

필수 사항입니다.
컬렉션 이름 구성입니다.

comment

mode

예상 스키마 와 일치하지 않는 문서를 처리할 때 사용할 구문 분석 전략입니다. 이 옵션에는 다음 값을 사용할 수 있습니다.

  • ReadConfig.ParseMode.FAILFAST: 스키마 와 일치하지 않는 문서 를 구문 분석할 때 예외가 발생합니다.

  • ReadConfig.ParseMode.PERMISSIVE: 데이터 유형이 스키마 와 일치하지 않는 경우 필드를 null 으)로 설정합니다. 유효하지 않은 각 문서 를 확장 JSON string 로 저장 하려면 이 값을 columnNameOfCorruptRecord 옵션과 결합합니다.

  • ReadConfig.ParseMode.DROPMALFORMED: 스키마 와 일치하지 않는 모든 문서 를 무시합니다.


기본값입니다: ReadConfig.ParseMode.FAILFAST

columnNameOfCorruptRecord

mode 옵션을 로 ReadConfig.ParseMode.PERMISSIVE 설정하다 경우 이 옵션은 유효하지 않은 문서 확장 JSON 으로 저장하는 새 열의 이름을 지정합니다. 명시적 스키마 사용하는 경우 새 열의 이름이 포함되어야 합니다. 유추된 스키마 사용하는 경우 Spark Connector 스키마 끝에 새 열을 추가합니다.

기본값: 없음

mongoClientFactory

MongoClientFactory 구성 키입니다. 인터페이스를 구현
해야 하는 사용자 지정 구현 지정할 수 com.mongodb.spark.sql.connector.connection.MongoClientFactory 있습니다.

기본값: com.mongodb.spark.sql.connector.connection.DefaultMongoClientFactory

partitioner

파티셔너 전체 클래스 이름입니다.

com.mongodb.spark.sql.connector.read.partitioner.Partitioner 인터페이스를 구현해야 하는 사용자 지정 구현을 지정할 수 있습니다.
파티셔너에 대한 자세한 내용은 파티셔너 구성 섹션을 참조하세요.

기본값: com.mongodb.spark.sql.connector.read.partitioner.SamplePartitioner

partitioner.options.

파티셔너 구성 접두사입니다.
파티셔너에 대한 자세한 내용은 파티셔너 구성 섹션을 참조하세요.

sampleSize

스키마 를 추론할 때
컬렉션 에서 샘플 할 문서 수입니다.

기본값: 1000

sql.inferSchema.mapTypes.enabled

스키마 추론할 때 지도 유형을 활성화 할지 여부입니다.
활성화하면 호환되는 큰 구조체 유형이 MapType 대신 로 유추됩니다.

기본값: true

sql.inferSchema.mapTypes.minimum.key.size

로 추론하기 전의 의 최소 크기입니다.StructType MapType

기본값: 250

aggregation.pipeline

Spark 로 데이터를 전송하기 전에 컬렉션 에 적용 할 사용자 지정 집계 파이프라인 지정합니다.
값은 확장 JSON 단일 문서 또는 문서 목록이어야 합니다.
단일 문서 다음과 유사합니다.

{"$match": {"closed": false}}

문서 목록은 다음과 유사합니다.

[{"$match": {"closed": false}}, {"$project": {"status": 1, "name": 1, "description": 1}}]

참고: 사용자 지정 집계 파이프라인은 파티셔너 전략과 호환되어야 합니다. 예시 들어 $group 과 같은 집계 단계는 둘 이상의 파티션을 생성하는 파티셔너에서는 작동하지 않습니다.

aggregation.allowDiskUse

집계 실행 때 디스크에 저장 하도록 허용할지 여부를 지정합니다.

기본값: true

outputExtendedJson

true인 경우 connector Spark 에서 지원하지 않는 BSON types를 확장 JSON 문자열로 변환합니다.false 인 경우 connector 지원되지 않는 유형에 대해 원래의 완화된 JSON 형식을 사용합니다.

기본값: false

schemaHints

컬렉션 에 대한 스키마 유추할 때 사용할 알려진 필드 유형의 부분 스키마 schemaHints 지정합니다. 옵션에 대해 자세히 학습 스키마 힌트로 알려진 필드 지정 섹션을 참조하세요.

기본값: 없음

파티셔너는 Spark Connector를 사용하는 배치 읽기의 읽기 동작을 변경합니다. 데이터를 파티션으로 나누어 변환을 병렬로 실행할 수 있습니다.

이 섹션에는 다음 파티셔너에 대한 구성 정보가 포함되어 있습니다.

참고

배치 읽기 전용

데이터 스트림 처리 엔진은 단일 데이터 스트림을 생성하므로 파티셔너는 스트리밍 읽기에 영향을 주지 않습니다.

기본값 파티셔너 구성은 AutoBucketPartitioner 입니다. 데이터를 샘플링하여 파티션을 생성하고 $bucketAuto 집계 단계를 사용하여 페이지를 매깁니다. 이 구성을 사용하면 중첩된 필드를 포함하여 단일 또는 여러 필드에 걸쳐 데이터를 분할할 수 있습니다.

참고

복합 키

AutoBucketPartitioner 구성에서 복합 키를 지원 하려면 MongoDB Server 버전 7.0 이상이 필요합니다.

이 구성을 사용하려면 partitioner 구성 옵션을 com.mongodb.spark.sql.connector.read.partitioner.AutoBucketPartitioner로 설정합니다.

속성 이름
설명

partitioner.options.fieldList

분할 에 사용할 필드 목록입니다. 값은 단일 필드 이름이거나 쉼표로 구분된 필드 목록일 수 있습니다.

기본값입니다: _id

partitioner.options.chunkSize

각 파티션의 평균 크기(MB)입니다. 파티션 크기가 작을수록 더 적은 수의 문서를 포함하는 더 많은 파티션이 생성됩니다. 이 구성에서는 평균 문서 크기를 사용하여 파티션당 문서 수를 결정하므로 파티션 크기가 동일하지 않을 수 있습니다.

기본값입니다: 64

partitioner.options.samplesPerPartition

파티션당 가져올 샘플 수입니다.

기본값입니다: 100

partitioner.options.partitionKeyProjectionField

컬렉션 을 분할하는 데 사용되는 모든 필드 를 포함하는 프로젝션된 필드에 사용할 필드 이름입니다. 각 문서 에 이미 __idx 필드 가 포함된 경우에만 이 속성 값을 변경하는 것이 좋습니다.

기본값입니다: __idx

SamplePartitioner 구성은 AutoBucketPartitioner 구성과 유사하지만 $bucketAuto 집계 단계를 사용하지 않습니다. 이 구성을 사용하면 파티션 필드, 파티션 크기, 파티션당 샘플 수를 지정할 수 있습니다.

이 구성을 사용하려면 partitioner 구성 옵션을 com.mongodb.spark.sql.connector.read.partitioner.SamplePartitioner로 설정합니다.

속성 이름
설명

partitioner.options.partition.field

분할에 사용할 필드로, 고유한 필드여야 합니다.

기본값입니다: _id

partitioner.options.partition.size

각 파티션의 크기(MB)입니다. 파티션 크기가 작을수록 더 적은 수의 문서가 포함된 파티션이 생성됩니다.

기본값입니다: 64

partitioner.options.samples.per.partition

파티션당 가져올 샘플 수입니다. 가져온 총 샘플 수는 다음과 같습니다.

samples per partition * ( count / number of documents per partition)

기본값입니다: 10

예시

평균 문서 크기가 0.5MB인 640개의 컬렉션의 경우, 기본 SamplePartitioner 구성은 파티션당 128개의 문서가 있는 5개의 파티션을 만듭니다.

Spark Connector는 50개의 문서(의도된 파티션당 기본 10개)를 샘플링하고 샘플링된 문서에서 파티션 필드 범위를 선택하여 5개의 파티션을 정의합니다.

ShardedPartitioner 구성은 샤드 구성에 따라 데이터를 자동으로 분할합니다.

이 구성을 사용하려면 partitioner 구성 옵션을 com.mongodb.spark.sql.connector.read.partitioner.ShardedPartitioner로 설정합니다.

중요

ShardedPartitioner 제한 사항

  1. MongoDB Server v6.0 이상에서는 샤딩 작업이 모든 샤드 키 값을 포함하는 하나의 큰 초기 청크를 생성하므로 샤드 파티셔너가 비효율적입니다. MongoDB v6.0 이상에 연결된 경우 샤드 파티셔너를 사용하지 않는 것이 좋습니다.

  2. 샤드 파티셔너는 해시 샤드 키와 호환되지 않습니다.

PaginateBySizePartitioner 구성은 평균 문서 크기를 사용하여 컬렉션을 평균 크기의 청크로 분할하여 데이터에 페이지를 매깁니다.

이 구성을 사용하려면 partitioner 구성 옵션을 com.mongodb.spark.sql.connector.read.partitioner.PaginateBySizePartitioner로 설정합니다.

속성 이름
설명

partitioner.options.partition.field

분할에 사용할 필드로, 고유한 필드여야 합니다.

기본값입니다: _id

partitioner.options.partition.size

각 파티션의 크기(MB)입니다. 더 작은 파티션 크기는

더 적은 수의 문서가 포함된 파티션을 더 많이 만듭니다.

기본값입니다: 64

PaginateIntoPartitionsPartitioner 구성은 컬렉션의 문서 수를 허용 가능한 최대 파티션 수로 나누어 데이터에 페이지를 매깁니다.

이 구성을 사용하려면 partitioner 구성 옵션을 com.mongodb.spark.sql.connector.read.partitioner.PaginateIntoPartitionsPartitioner로 설정합니다.

속성 이름
설명

partitioner.options.partition.field

분할에 사용할 필드로, 고유한 필드여야 합니다.

기본값입니다: _id

partitioner.options.max.number.of.partitions

생성할 파티션 수입니다.

기본값입니다: 64

SinglePartitionPartitioner 구성은 단일 파티션을 만듭니다.

이 구성을 사용하려면 partitioner 구성 옵션을 com.mongodb.spark.sql.connector.read.partitioner.SinglePartitionPartitioner로 설정합니다.

SparkConf를 사용하여 이전 설정을 지정하는 경우 해당 설정을 connection.uri 설정에 포함하거나 개별적으로 나열할 수 있습니다.

다음 코드 예시에서는 connection.uri 설정의 일부로 데이터베이스, 컬렉션 및 읽기 설정을 지정하는 방법을 보여 줍니다.

spark.mongodb.read.connection.uri=mongodb://127.0.0.1/myDB.myCollection?readPreference=primaryPreferred

connection.uri를 더 짧게 유지하고 설정을 더 읽기 쉽게 만들려면 대신 개별적으로 지정할 수 있습니다.

spark.mongodb.read.connection.uri=mongodb://127.0.0.1/
spark.mongodb.read.database=myDB
spark.mongodb.read.collection=myCollection

중요

connection.uri 및 해당 줄 모두에 설정을 지정하면 connection.uri 설정이 우선 적용됩니다. 예를 들어, 다음 구성에서 연결 데이터베이스는 foobar입니다. 이는 connection.uri 설정의 값이기 때문입니다.

spark.mongodb.read.connection.uri=mongodb://127.0.0.1/foobar
spark.mongodb.read.database=bar