HTTP URL
Atlas Data Federation は、フェデレーティッドデータベースインスタンス ストアとして一般にアクセス可能な URLをサポートします。 データに対してクエリを実行するには、フェデレーティッドデータベースインスタンスでHTTPデータ ストアへのマッピングを定義する必要があります。
重要
ストレージ構成内の情報は MongoDB の内部で表示され、Atlas Data Federation のパフォーマンスを監視して改善するための運用データとして保存されます。 したがって、構成ではPIIを使用しないことをお勧めします。
HTTP データストアの構成例
データセンターから収集されたデータを含むURL https://www.datacenter-hardware.com/data.json
、 https://www.datacenter-software.com/data.json
、 https://www.datacenter-metrics.com/data.json
について考えます。 以下は次のように構成されます。
フェデレーティッドデータベースインスタンス ストアとしてのファイル内のデータを含む、パブリックにアクセス可能な URL を指定します。
各URL用のパーティションを作成します。
{ "stores" : [ { "name" : "httpStore", "provider" : "http", "allowInsecure" : false, "urls" : [ "https://www.datacenter-hardware.com/data.json", "https://www.datacenter-software.com/data.json" ], "defaultFormat" : ".json" } ], "databases" : [ { "name" : "dataCenter", "collections" : [ { "name" : "inventory", "dataSources" : [ { "storeName" : "httpStore", "allowInsecure" : false, "urls" : [ "https://www.datacenter-metrics.com/data" ], "defaultFormat" : ".json" } ] } ] } ] }
構成フォーマット
フェデレーティッドデータベースインスタンス構成の形式は次のとおりです。
1 { 2 "stores" : [ 3 { 4 "name" : "<string>", 5 "provider": "<string>", 6 "defaultFormat" : "<string>", 7 "allowInsecure": <boolean>, 8 "urls": ["<string>"] 9 } 10 ], 11 "databases" : [ 12 { 13 "name" : "<string>", 14 "collections" : [ 15 { 16 "name" : "<string>", 17 "dataSources" : [ 18 { 19 "storeName" : "<string>", 20 "allowInsecure" : <boolean>, 21 "urls" : ["<string>"], 22 "defaultFormat" : "<string>", 23 "provenanceFieldName": "<string>" 24 } 25 ] 26 } 27 ], 28 "views" : [ 29 { 30 "name" : "<string>", 31 "source" : "<string>", 32 "pipeline" : "<string>" 33 } 34 ] 35 } 36 ] 37 }
stores
stores
オブジェクトは、フェデレーティッドデータベースインスタンスに関連付けられた各データ ストアを定義します。 フェデレーティッドデータベースインスタンス ストアは、一般にアクセス可能なURLに保存されているファイルをキャプチャします。 Data Federation は、stores
オブジェクトで定義されたデータ ストアにのみアクセスできます。databases
databases
オブジェクトは、stores
で定義された各フェデレーティッドデータベースインスタンス ストアとデータベース内の MongoDB コレクションの間のマッピングを定義します。
stores
1 "stores" : [ 2 { 3 "name" : "<string>", 4 "provider" : "<string>", 5 "allowInsecure": <boolean>, 6 "urls" : ["<string>"], 7 "defaultFormat" : "<string>" 8 } 9 ]
stores
各オブジェクトがフェデレーティッドデータベースインスタンスに関連付けるデータ ストアを表すオブジェクトの配列。フェデレーティッドデータベースインスタンス ストアは、S3 バケット内のファイル、Atlas クラスター内のドキュメント、または一般にアクセス可能な URL に保存されているファイルを取得します。Atlas Data Federation は、
stores
オブジェクトで定義されたデータ ストアにのみアクセスできます。
stores.[n].name
フェデレーティッドデータベースインスタンス ストアの名前。
databases.[n].collections.[n].dataSources.[n].storeName
フィールドは、マッピング構成の一部としてこの値を参照します。
stores.[n].provider
データを保存する場所を定義します。値は次のいずれかになります。
s3
( Amazon Web Services S3バケット用)。atlas
Atlas クラスター内のコレクション用。http
は、一般にアクセス可能なURLでホストされているファイル内のデータと接続します。
stores.[n].allowInsecure
任意。 指定されたURLのスキームを検証します。 値は次のいずれかになります。
true
安全でないHTTPスキームを許可するfalse
安全なHTTPSスキームのみを許可します(デフォルト)
true の場合、Atlas Data Federation は次のように動作します。
サーバーの証明書チェーンとホスト名を検証しません。
サーバーによって提示されたホスト名を持つ任意の証明書を受け入れます。
警告:これを
true
に設定すると、データが中間者攻撃(man-in-the-middle attack)に対して脆弱になり、データの機密性と整合性が損なわれる可能性があります。 Atlas Data Federation のテストと使用を開始する場合のみ、これをtrue
に設定します。省略した場合、デフォルトは
false
になります。false
に設定されている場合、指定された URL に安全でないHTTPスキームが含まれている場合は、Data Federation は次のようなエラーを返します。The insecure HTTP scheme is not supported by default - please add a "allowInsecure: true" flag to query from such URLs.
stores.[n].defaultFormat
任意。
databases.[n].collections.[n].dataSources.[n].storeName
を検索中に拡張子のないファイルを検出した場合に Atlas Data Federation が想定するデフォルトの形式。defaultFormat
フィールドでは、次の値が有効です。.json
,.json.gz
,.bson
,.bson.gz
,.avro,
.avro.gz
,.orc
,.tsv
,.tsv.gz
,.csv
,.csv.gz
,.parquet
注意
ファイル形式が
CSV
またはTSV
の場合、データにヘッダー行を含める必要があります。詳細については、「CSV および TSV」を参照してください。省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。
指定された形式は、 オブジェクトで指定された URL
stores
にのみ適用されます。
databases
1 "databases" : [ 2 { 3 "name" : "<string>", 4 "collections" : [ 5 { 6 "name" : "<string>", 7 "dataSources" : [ 8 { 9 "storeName" : "<string>", 10 "allowInsecure" : <boolean>, 11 "urls" : ["<string>"], 12 "defaultFormat" : "<string>", 13 "provenanceFieldName": "<string>" 14 } 15 ] 16 } 17 ] 18 } 19 ]
databases
各オブジェクトがデータベース、そのコレクション、および任意でコレクション上のビューを表すオブジェクトの配列。各データベースには複数の
collections
およびviews
オブジェクトを保持できます。
databases.[n].collections
各オブジェクトが
stores
フェデレーティッドデータベースインスタンス ストアにマッピングするコレクションとデータソースを表すオブジェクトの配列。 動的に生成されたデータベースの場合、ストレージ構成で定義できるワイルドカード(*
)のコレクション オブジェクトは 1 つだけです。
databases.[n].collections.[n].name
Atlas Data Federation が各
databases.[n].collections.[n].dataSources.[n].storeName
に含まれるデータをマッピングするコレクションの名前。配列内の各オブジェクトは、コレクションとstores
配列内のオブジェクトとの間のマッピングを表します。注意
ワイルドカード
*
コレクションは生成できません。
databases.[n].collections.[n].dataSources
各オブジェクトがコレクションにマッピングする
stores
フェデレーティッドデータベースインスタンス ストアを表すオブジェクトの配列。
databases.[n].collections.[n].dataSources.[n].storeName
<collection>
にマッピングするフェデレーティッドデータベースインスタンス ストアの名前。stores
配列内のオブジェクトのname
と一致する必要があります。
databases.[n].collections.[n].dataSources.[n].allowInsecure
任意。 指定されたURLのスキームを検証します。 値は次のいずれかになります。
true
安全でないHTTPスキームを許可するfalse
安全なHTTPSスキームのみを許可します(デフォルト)
true の場合、Atlas Data Federation は次のように動作します。
サーバーの証明書チェーンとホスト名を検証しません。
サーバーによって提示されたホスト名を持つ任意の証明書を受け入れます。
警告:これを
true
に設定すると、データが中間者攻撃(man-in-the-middle attack)に対して脆弱になり、データの機密性と整合性が損なわれる可能性があります。 Atlas Data Federation のテストと使用を開始する場合のみ、これをtrue
に設定します。省略した場合、デフォルトは
false
になります。false
に設定されている場合、指定された URL に安全でないHTTPスキームが含まれている場合は、Data Federation は次のようなエラーを返します。The insecure HTTP scheme is not supported by default - please add a "allowInsecure: true" flag to query from such URLs.
databases.[n].collections.[n].dataSources.[n].urls
任意。 データが保存される一般にアクセス可能なURLのコンマ区切りリスト。 フェデレーティッドデータベースインスタンスは、各URLのパーティションを作成します。
urls
に含まれていないURLを指定できます。ただし、コレクションにはurls
とurls
の両方のURLからのデータの和集合が含まれます。 省略した場合、Data Federation は指定された でurls
storeName
を使用します。
databases.[n].collections.[n].dataSources.[n].defaultFormat
任意。
databases.[n].collections.[n].dataSources.[n].storeName
を検索中に拡張子のないファイルを検出した場合に Atlas Data Federation が想定するデフォルトの形式。defaultFormat
フィールドでは、次の値が有効です。.json
,.json.gz
,.bson
,.bson.gz
,.avro,
.avro.gz
,.orc
,.tsv
,.tsv.gz
,.csv
,.csv.gz
,.parquet
注意
ファイル形式が
CSV
またはTSV
の場合、データにヘッダー行を含める必要があります。詳細については、「CSV および TSV」を参照してください。省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。
指定された形式は、 オブジェクトで指定された URL
databases.[n].collections.[n].dataSources
にのみ適用されます。
databases.[n].collections.[n].dataSources.[n].provenanceFieldName
結果にドキュメントの出所が含まれるフィールドの名前。ストレージ構成でこの設定を指定すると、Atlas Data Federation は結果の各ドキュメントに対して次のフィールドを返します。
フィールド名説明provider
フェデレーティッドデータベースインスタンスストレージ構成のプロバイダー(
stores.[n].provider
)uri
ドキュメントのHTTPまたは HTTPS URL (
databases.[n].collections.[n].dataSources.[n].urls
)Atlas UI のビジュアル エディターを使用してこの設定を構成することはできません。
databases.[n].views.[n].source
ビューのソース コレクションの名前。
$sql
ステージでビューを作成する場合は、SQL ステートメントでソース コレクションが指定されるため、このフィールドを省略する必要があります。
databases.[n].views.[n].pipeline
source
コレクションに適用する 集計パイプラインステージ。$sql
ステージを使用してビューを作成することもできます。