HTTP URL
Nesta página
O Atlas Data Federation permiteURLs acessíveis publicamente como instância do banco de dados federado armazenamentos. Você deve definir mapeamentos em sua instância do banco de dados federado para seus armazenamentos de dados HTTP para executar query em seus dados.
Importante
As informações na sua configuração de armazenamento são visíveis internamente no MongoDB e armazenadas como dados operacionais para monitorar e melhorar o desempenho do Atlas Data Federation. Portanto, recomendamos que você não use PII em suas configurações.
Exemplo de Configuração para Armazenamento de Dados HTTP
Considere URL s https://www.datacenter-hardware.com/data.json
, https://www.datacenter-software.com/data.json
e https://www.datacenter-metrics.com/data.json
contendo dados coletados de um centro de dados. A configuração a seguir:
Especifica as URL acessíveis publicamente que contêm dados em arquivos como um armazenamento de instância do banco de dados federado.
Cria uma partição para cada 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" } ] } ] } ] }
Formato de configuração
A configuração da instância do banco de dados federado tem o seguinte formato:
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
- O objeto
stores
define cada armazenamento de dados associado à instância do banco de dados federado. O armazenamento da instância do banco de dados federado captura arquivos armazenados em URLacessíveis publicamente. O Data Federation só pode acessar armazenamentos de dados definidos no objetostores
. databases
- O objeto
databases
define o mapeamento entre cada instância do banco de dados federado definido emstores
e nas collections MongoDB nos bancos de dados.
stores
1 "stores" : [ 2 { 3 "name" : "<string>", 4 "provider" : "<string>", 5 "allowInsecure": <boolean>, 6 "urls" : ["<string>"], 7 "defaultFormat" : "<string>" 8 } 9 ]
stores
Array de objetos em que cada objeto representa um armazenamento de dados a ser associado à instância do banco de dados federado. O armazenamento de instâncias de banco de dados federado captura arquivos em um bucket S3, documentos no Atlas cluster ou arquivos armazenados em URLs acessíveis publicamente. O Atlas Data Federation só pode acessar armazenamentos de dados definidos no objeto
stores
.
stores.[n].name
Nome de armazenamento da instância do banco de dados federado. O campo
databases.[n].collections.[n].dataSources.[n].storeName
referencia este valor como parte da configuração de mapeamento.
stores.[n].provider
Define onde os dados são armazenados. O valor pode ser um dos seguintes:
s3
para um bucket Amazon Web Services S3 .atlas
para uma collection em um cluster do Atlas.http
para dados em arquivos hospedados em URL s acessíveis publicamente.
stores.[n].allowInsecure
Opcional. Valida o esquema na URLs especificada. O valor pode ser um dos seguintes:
true
para permitir esquema HTTP insegurofalse
para permitir apenas esquema HTTPS seguro (padrão)
Se verdadeiro, o Atlas Data Federation:
Não verifica a cadeia de certificado do servidor e o nome do host.
Aceita qualquer certificado com qualquer nome de host apresentado pelo servidor.
AVISO: se você definir isso como
true
, seus dados poderão ficar vulneráveis a um ataques do tipo man-in-the-middle, que pode comprometer a confidencialidade e a integridade dos seus dados. Defina isso comotrue
apenas para testar e começar a usar o Atlas Data Federation.Se omitido, o padrão é
false
. Se definido comofalse
, o Data Federation retornará um erro semelhante ao seguinte se uma URL especificada contiver esquema HTTP inseguro:The insecure HTTP scheme is not supported by default - please add a "allowInsecure: true" flag to query from such URLs.
stores.[n].urls
Opcional. Lista separada por vírgulas de URL HTTP acessíveis publicamente ondeos dados são armazenados. Não é possível especificar URLs que exigem autenticação.
stores.[n].defaultFormat
Opcional. Formato padrão que o Data Federation assume se encontrar um arquivo sem extensão ao pesquisar o
databases.[n].collections.[n].dataSources.[n].storeName
.Os seguintes valores são válidos para o campo
defaultFormat
:.json
,.json.gz
,.bson
,.bson.gz
,.avro,
.avro.gz
,.orc
,.tsv
,.tsv.gz
,.csv
,.csv.gz
,.parquet
Observação
Se o formato do arquivo for
CSV
ouTSV
, você deverá incluir uma linha de cabeçalho nos dados. Consulte CSV e TSV para obter mais informações.Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo.
O formato especificado só se aplica à URLs especificada no objeto
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
Array de objetos onde cada objeto representa um banco de dados, suas coleções e, opcionalmente, quaisquer visualizações nas coleções. Cada banco de dados pode ter vários objetos
collections
eviews
.
databases.[n].name
Nome do banco de dados para o qual o Atlas Data Federation mapeia os dados contidos no armazém de dados.
databases.[n].collections
Array de objetos em que cada objeto representa uma coleção e fontes de dados que mapeiam para um armazenamento de instância do banco de dados federado
stores
. Para bancos de dados gerados dinamicamente, você pode definir apenas um objeto de coleção curinga (*
) na configuração de armazenamento.
databases.[n].collections.[n].name
Nome da coleção para a qual o Atlas Data Federation mapeia os dados contidos em cada
databases.[n].collections.[n].dataSources.[n].storeName
. Cada objeto na array representa o mapeamento entre a coleção e um objeto na arraystores
.Observação
Não é possível gerar coleções de curingas
*
.
databases.[n].collections.[n].dataSources
Array de objetos em que cada objeto representa um armazenamento de instância do banco de dados federado
stores
para mapear com a coleção.
databases.[n].collections.[n].dataSources.[n].storeName
Nome de um armazém de instância do banco de dados federado para mapear para o
<collection>
. Deve corresponder aoname
de um objeto na arraystores
.
databases.[n].collections.[n].dataSources.[n].allowInsecure
Opcional. Valida o esquema na URLs especificada. O valor pode ser um dos seguintes:
true
para permitir esquema HTTP insegurofalse
para permitir apenas esquema HTTPS seguro (padrão)
Se verdadeiro, o Atlas Data Federation:
Não verifica a cadeia de certificado do servidor e o nome do host.
Aceita qualquer certificado com qualquer nome de host apresentado pelo servidor.
AVISO: se você definir isso como
true
, seus dados poderão ficar vulneráveis a um ataques do tipo man-in-the-middle, que pode comprometer a confidencialidade e a integridade dos seus dados. Defina isso comotrue
apenas para testar e começar a usar o Atlas Data Federation.Se omitido, o padrão é
false
. Se definido comofalse
, o Data Federation retornará um erro semelhante ao seguinte se uma URL especificada contiver esquema HTTP inseguro: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
Opcional. Lista separada por vírgulas de URLs acessíveis publicamente, onde os dados são armazenados. A Instância do Banco de Dados Federado cria uma partição para cada URL. Você pode especificar URLs que não estão no
urls
; no entanto, a coleção conterá uma união de dados de URLs emurls
eurls
. Se omitido, o Data Federation usa ourls
nostoreName
especificado.
databases.[n].collections.[n].dataSources.[n].defaultFormat
Opcional. Formato padrão que o Data Federation assume se encontrar um arquivo sem extensão ao pesquisar o
databases.[n].collections.[n].dataSources.[n].storeName
.Os seguintes valores são válidos para o campo
defaultFormat
:.json
,.json.gz
,.bson
,.bson.gz
,.avro,
.avro.gz
,.orc
,.tsv
,.tsv.gz
,.csv
,.csv.gz
,.parquet
Observação
Se o formato do arquivo for
CSV
ouTSV
, você deverá incluir uma linha de cabeçalho nos dados. Consulte CSV e TSV para obter mais informações.Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo.
O formato especificado só se aplica à URLs especificada no objeto
databases.[n].collections.[n].dataSources
.
databases.[n].collections.[n].dataSources.[n].provenanceFieldName
Nome do campo que inclui a procedência dos documentos nos resultados. Se você especificar esta configuração na configuração de armazenamento, o Atlas Data Federation retornará os seguintes campos para cada documento no resultado:
Nome do campoDescriçãoprovider
provedor (stores.[n].provider
) na configuração de armazenamento da instância do banco de dados federadouri
Você não pode definir esta configuração utilizando o Editor Visual na UI do Atlas.
databases.[n].views
Array de objetos onde cada objeto representa um pipeline de agregação em uma coleção. Para saber mais sobre visualizações, consulte Visualizações.
databases.[n].views.[n].source
Nome da coleção de origem da visualização. Se quiser criar uma visualização com um estágio
$sql
, você deverá omitir este campo , pois a instrução SQL especificará a collection de origem.
databases.[n].views.[n].pipeline
Estágio(s) de pipeline de agregação a serem aplicados à coleção
source
. Você também pode criar visualizações usando o estágio$sql
.