Visão geral
O Atlas Data Federation permite buckets AWS S3 como armazenamentos de instância do banco de dados federado. Você deve definir mapeamentos em sua instância do banco de dados federado para seu bucket AWS S3 para executar consultas em seus dados.
Formato de arquivo de configuração
Para definir um armazenar de instância do banco de dados federado para um bucket AWS S3, é possível especificar os parâmetros de configuração em JSON. A configuração contém o armazenamento de dados AWS e o mapeia para coleções virtuais que você pode consultar.
A configuração JSON para dados no AWS S3 bucket utiliza os seguintes campos:
1 { 2 "stores" : [ 3 { 4 "name" : "<string>", 5 "provider": "<string>", 6 "region" : "<string>", 7 "bucket" : "<string>", 8 "additionalStorageClasses" : ["<string>"], 9 "prefix" : "<string>", 10 "includeTags": <boolean>, 11 "delimiter": "<string>", 12 "public": <boolean> 13 } 14 ], 15 "databases" : [ 16 { 17 "name" : "<string>", 18 "collections" : [ 19 { 20 "name" : "<string>", 21 "dataSources" : [ 22 { 23 "storeName" : "<string>", 24 "path" : "<string>", 25 "defaultFormat" : "<string>", 26 "provenanceFieldName": "<string>", 27 "omitAttributes": true | false 28 } 29 ] 30 } 31 ], 32 "maxWildcardCollections" : <integer>, 33 "views" : [ 34 { 35 "name" : "<string>", 36 "source" : "<string>", 37 "pipeline" : "<string>" 38 } 39 ] 40 } 41 ] 42 }
A configuração JSON para o armazenamento de dados do Amazon Web Services S3 contém dois objetos de nível superior: stores e databases.
stores
O objeto stores define cada armazenamento de dados associado com a instância do banco de dados federado. Esta loja captura arquivos em um bucket do AWS S3. O Data Federation só pode acessar armazenamentos de dados definidos dentro do objeto stores.
O objeto stores contém os seguintes campos:
1 "stores" : [ 2 { 3 "name" : "<string>", 4 "provider" : "<string>", 5 "region" : "<string>", 6 "bucket" : "<string>", 7 "additionalStorageClasses" : ["<string>"], 8 "prefix" : "<string>", 9 "delimiter" : "<string>", 10 "includeTags": <boolean>, 11 "public": <boolean> 12 } 13 ]
A tabela a seguir descreve os campos no objeto stores:
Campo | Tipo | necessidade | Descrição |
|---|---|---|---|
array | necessário | Array de objetos em que cada objeto representa um armazenamento de dados a ser associado à instância do banco de dados federado. O armazenamento captura arquivos em um bucket AWS S3. O Atlas Data Federation só pode acessar os armazenamentos de dados definidos no objeto | |
string | necessário | Nome de armazenamento da instância do banco de dados federado . O campo | |
string | necessário | Define onde os dados são armazenados. O valor deve ser | |
string | necessário | Nome da região AWS na qual o bucket AWS S3 está hospedado. Para uma relação de nomes de regiões válidos, consulte Amazon Web Services (AWS). | |
string | necessário | Nome do bucket AWS S3. Deve corresponder exatamente ao nome de um bucket AWS S3 que o Atlas Data Federation pode acessar com as credenciais AWS IAM configuradas. | |
array | opcional | Array de Amazon Web Services S3 classes de armazenamento. O Atlas Data Federation incluirá os arquivos nessas classes de armazenamento nos resultados da query. Os valores válidos são:
IMPORTANTE: os arquivos na classe de armazenamento Padrão são suportados por padrão. | |
string | opcional | Adiciona um prefixo aos caminhos de pesquisa de arquivos no bucket AWS S3. O Atlas Data Federation adiciona o valor de Se omitido, o Atlas Data Federation faz uma pesquisa de todos os arquivos a partir da raiz do bucket do AWS S3. | |
string | opcional | Define um delimitador que separa os segmentos de caminho no armazenamento de instância do banco de dados federado . O Data Federation usa o delimitador para percorrer com eficiência os buckets do Amazon Web Services S3 com uma estrutura de diretório hierárquica. Você pode especificar qualquer caractere suportado pelas chaves de objeto do Amazon Web Services S3como delimitador. Por exemplo, você pode especificar um sublinhado ( Se omitido, o padrão é | |
booleano | opcional | Determina se devem ou não ser usadas tags do AWS S3 nos arquivos no caminho fornecido como atributos de partição adicionais. Os valores válidos são Se omitido, o padrão é Se configurado para
AVISO: se definido como | |
booleano | opcional | Especifica se o bucket é público. Se configurado como Se omitido, o padrão é |
databases
O objeto databases define o mapeamento entre cada instância do banco de dados federado definido em stores e nas collections MongoDB nos bancos de dados.
O objeto database contém os seguintes campos:
1 "databases" : [ 2 { 3 "name" : "<string>", 4 "collections" : [ 5 { 6 "name" : "<string>", 7 "dataSources" : [ 8 { 9 "storeName" : "<string>", 10 "defaultFormat" : "<string>", 11 "path" : "<string>", 12 "provenanceFieldName": "<string>", 13 "omitAttributes": <boolean> 14 } 15 ] 16 } 17 ], 18 "maxWildcardCollections" : <integer>, 19 "views" : [ 20 { 21 "name" : "<string>", 22 "source" : "<string>", 23 "pipeline" : "<string>" 24 } 25 ] 26 } 27 ]
A tabela a seguir descreve os campos no objeto database:
Campo | Tipo | necessidade | Descrição | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
array | necessário | 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 | |||||||||||||
string | necessário | Nome do banco de dados para o qual o Atlas Data Federation mapeia os dados contidos no armazém de dados. | |||||||||||||
array | necessário | Array de objetos em que cada objeto representa uma coleção e fontes de dados que mapeiam para um | |||||||||||||
string | necessário | Nome da collection para a qual a Atlas Data Federation mapeia os dados contidos em cada Você pode gerar nomes de coleções dinamicamente a partir de caminhos de arquivos, especificando | |||||||||||||
array | necessário | Array de objetos em que cada objeto representa um | |||||||||||||
string | necessário | ||||||||||||||
string | necessário | Controla como o Atlas Data Federation pesquisa e analisa arquivos no Por exemplo, considere um bucket S3 Um Um Se o Anexar o caractere curinga
Consulte Definir Caminho para Dados do S3 para obter mais informações. Ao especificar o
Ao especificar atributos do mesmo tipo, faça qualquer um dos seguintes:
Formato padrão que o Data Federation assume se encontrar um arquivo sem extensão ao pesquisar o Os seguintes valores são válidos para o campo
IMPORTANTE: se o formato do arquivo for Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. | |||||||||||||
string | opcional | 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:
Você não pode definir esta configuração utilizando o Editor Visual na UI do Atlas. | |||||||||||||
booleano | opcional | Sinalizador que especifica se devem ser omitidos os atributos (pares de chave e valor) que o Atlas Data Federation adiciona aos documentos na coleção. Você pode especificar um dos seguintes valores:
Se omitido, o padrão é Por exemplo: Considere um arquivo chamado | |||||||||||||
inteiro | opcional | Opcional. Número máximo de coleções de curingas | |||||||||||||
array | opcional | 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. | |||||||||||||
string | necessário | Nome da visualização. | |||||||||||||
string | necessário | Nome da coleção de origem da visualização. Se você deseja criar uma visualização com um estágio $sql, você deve omitir este campo, pois a instrução SQL especificará a collection de origem. | |||||||||||||
array | opcional | Array de fases do pipeline de agregação a ser(em) aplicado(s) à coleção |
Exemplo de Configuração para Armazenamento de Dados no S3
Exemplo
Considere um contêiner S3 datacenter-alpha com dados coletados de um datacenter:
|--metrics |--hardware
O caminho /metrics/hardware armazena arquivos JSON com métricas derivadas do hardware do centro de dados, onde cada nome de arquivo é o carimbo de data/hora UNIX em milissegundos do período de 24 horas coberto por esse arquivo:
/hardware/1564671291998.json
A configuração a seguir:
Define um armazenamento de instância do banco de dados federado no bucket
datacenter-alphaS3 na regiãous-east-1da AWS. O armazenamento de instâncias do banco de dados federado é especificamente restrito apenas aos arquivos de dados no caminho da pastametrics.Mapeia arquivos da pasta
hardwarepara um banco de dados MongoDBdatacenter-alpha-metricse uma collectionhardware. O mapeamento de configuração inclui lógica de análise para capturar o carimbo de data/hora implícito no nome do arquivo.
{ "stores" : [ { "name" : "datacenter-alpha", "provider" : "s3", "region" : "us-east-1", "bucket" : "datacenter-alpha", "additionalStorageClasses" : [ "STANDARD_IA" ], "prefix" : "/metrics", "delimiter" : "/" } ], "databases" : [ { "name" : "datacenter-alpha-metrics", "collections" : [ { "name" : "hardware", "dataSources" : [ { "storeName" : "datacenter-alpha", "path" : "/hardware/{date date}" } ] } ] } ] }
O Atlas Data Federation analisa o bucket S3 datacenter-alpha e processa todos os arquivos em /metrics/hardware/. O collections utiliza a sintaxe de análise de caminho para mapear o nome do arquivo para o campo date , que é uma data ISO-8601, em cada documento. Se um campo date correspondente não existir em um documento, ele será adicionado.
Usuários conectados à instância do banco de dados federado podem usar a linguagem de query do MongoDB e as agregações compatíveis para analisar dados no bucket AWS S3 por meio da coleção datacenter-alpha-metrics.hardware.