AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの 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

modeReadConfig.ParseMode.PERMISSIVEオプションを に設定すると、このオプションは無効なドキュメントを 拡張JSONとして保存する新しい列の名前を指定します。明示的なスキーマを使用している場合は、新しい列の名前を含める必要があります。推論されたスキーマを使用している場合、 Spark コネクタ はスキーマの末尾に新しい列を追加します。デフォルト:

なし

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の場合、コネクタはSparkでサポートされていないBSON型を拡張JSON文字列に変換します。false の場合、コネクタはサポートされていない型に対して元の緩和型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.5 MB の 640 ドキュメントを含むコレクションの場合、デフォルトのSamplePartitioner構成では 5 つのパーティションが作成され、1 つのパーティションあたり 128 ドキュメントが含まれます。

Spark Connectorは 50 個のドキュメント(対象パーティションごとにデフォルトは 10)をサンプリングし、サンプリングされたドキュメントからパーティション フィールド範囲を選択して 5 つのパーティションを定義します。

ShardedPartitioner構成では、シャード構成に基づいてデータが自動的に分割されます。

この構成を使用するには、 partitioner構成オプションをcom.mongodb.spark.sql.connector.read.partitioner.ShardedPartitionerに設定します。

重要

ShardedPartitioner の制限

  1. MongoDB Server v 6.0以降では、シャーディング操作によって、すべてのシャードキー値をカバーする大きな初期チャンクが 1 件作成され、シャーディングされたパーティションが非効率的になります。 MongoDB v 6.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構成では 1 つのパーティションが作成されます。

この構成を使用するには、 partitioner構成オプションをcom.mongodb.spark.sql.connector.read.partitioner.SinglePartitionPartitionerに設定します。

SparkConfを使用して以前の設定のいずれかを指定する場合は、それらをconnection.uri設定に含めるか、個別に一覧表示できます。

次のコード例は、 connection.uri設定の一部としてデータベース、コレクション、読み込み設定(read preference)を指定する方法を示しています。

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