O Atlas Data Federation dá suporte a contêineres de Armazenamento de Blobsdo Azure como armazenamentos de instâncias de banco de dados federados. Você deve definir mapeamentos em sua instância de banco de dados federado para seus contêineres de Armazenamento de Blobs do Azure para executar queries em seus dados.
Observação
Enquanto nos referimos a blobs como arquivos e prefixos separados por delimitadores como diretórios nesta página, esses serviços de armazenamento blob não são realmente sistemas de arquivos e não têm os mesmos comportamentos em todos os casos como arquivos em um disco rígido.
Formato de arquivo de configuração
Para definir um armazenamento de instância do banco de dados federado para um contêiner do Azure Blob Storage, você pode especificar os parâmetros de configuração no formato JSON. A configuração contém o armazenamento de dados do Armazenamento de Blobs do Azure e o mapeia para collections virtuais que você pode query.
A configuração JSON para dados em contêineres do Azure Blob Storage utiliza os seguintes campos:
1 { 2 "stores" : [ 3 { 4 "name" : "<string>", 5 "provider": "<string>", 6 "region" : "<string>", 7 "serviceURL" : "<string>", 8 "containerName" : "<string>", 9 "delimiter" : "<string>", 10 "prefix": "<string>", 11 "public": <boolean> 12 } 13 ], 14 "databases" : [ 15 { 16 "name" : "<string>", 17 "collections" : [ 18 { 19 "name" : "<string>", 20 "dataSources" : [ 21 { 22 "storeName" : "<string>", 23 "path" : "<string>", 24 "defaultFormat" : "<string>", 25 "provenanceFieldName": "<string>", 26 "omitAttributes": <boolean> 27 } 28 ] 29 } 30 ], 31 "maxWildcardCollections" : <integer>, 32 "views" : [ 33 { 34 "name" : "<string>", 35 "source" : "<string>", 36 "pipeline" : "<string>" 37 } 38 ] 39 } 40 ] 41 } 42
A configuração JSON para um Armazenamento de Blobs do Azure 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. O armazenamento da instância do banco de dados federado captura arquivos em um contêiner do Azure Blob Storage. O Data Federation só pode acessar armazenamentos de dados definidos no objeto stores
.
O objeto stores
contém os seguintes campos:
1 "stores" : [ 2 { 3 "name" : "<string>", 4 "provider" : "<string>", 5 "region" : "<string>", 6 "serviceURL" : "<string>", 7 "containerName" : "<string>", 8 "delimiter": "<string", 9 "prefix" : "<string>", 10 "public": <boolean> 11 } 12 ]
A tabela a seguir descreve os campos no objeto de armazenamentos :
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 de instância do banco de dados federado captura:
O Atlas Data Federation só pode acessar 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 do Azure na qual os dados são armazenados. | |||||
string | necessário | URL da conta do Armazenamento de Blobs do Azure que contém seus contêineres de blobs. O
onde | |||||
string | necessário | Nome do Azure Blob Storage container que contém os arquivos. | |||||
string | opcional | O prefixo Atlas Data Federation se aplica ao procurar arquivos no Azure Blob Storage. Por exemplo, considere um contêiner do Azure Blob Storage
O armazenamento de instância do banco de dados federado acrescenta o valor de Se omitido, o Atlas Data Federation pesquisa todos os arquivos a partir da raiz do contêiner Armazenamento de Blob do Azure. | |||||
string | opcional | O delimitador que separa os segmentos do Se omitido, o padrão é | |||||
booleano | opcional | Especifica se o contêiner do Armazenamento de Blobs do Azure é público. Se configurado para 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 databases
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 de bancos de dados :
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 procura e analisa arquivos no Por exemplo, considere um contêiner do Azure Blob Storage
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:
| |||||||||||||
string | opcional | 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 defaultFormat :
Para obter mais informações, consulte Formatos de dados compatíveis | |||||||||||||
string | necessário | 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:
| |||||||||||||
booleano | necessário | Sinalizador que especifica se os atributos (pares de chave e valor) devem ser omitidos que o Atlas Data Federation adiciona à coleção. Você pode especificar um dos seguintes valores:
Se omitido, o padrão é Por exemplo: considere um arquivo denominado | |||||||||||||
inteiro | opcional | Número máximo de coleções de curingas * no banco de dados. Cada coleção de curinga pode ter somente uma fonte de dados. O valor pode ser entre 1 e 1000, inclusive. Se omitido, o padrão é 100. | |||||||||||||
array | necessário | 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 | Etiqueta que identifica a vista. | |||||||||||||
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 | Estágio(s) de pipeline de agregação a serem aplicados à coleção |
Exemplo de configuração para Azure Blob Storage Data Store
Exemplo
Considere o contêiner Azure Blob Storage datacenter-alpha
contendo 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 de banco de dados federado no contêiner do
datacenter-alpha
Azure Blob Storage naeastus2
região Azure . O armazenamento da Federated database instance store é especificamente restrito para incluir apenas ficheiros de dados no caminho do diretóriometrics
.Mapeia arquivos da pasta
hardware
para um banco de dados MongoDBdatacenter-alpha-metrics
e uma coleçãohardware
. 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", "provider" : "azure", "region" : "eastus2", "containerName" : "datacenter-alpha", "serviceURL" : "https://mystorageaccount.blob.core.windows.net/" } ], "databases" : [ { "name" : "datacenter-alpha-metrics", "collections" : [ { "name" : "hardware", "dataSources" : [ { "storeName" : "datacenter", "path" : "/hardware/{date date}" } ] } ] } ] }
A Federação de Dados do Atlas analisa o contêiner datacenter-alpha
do Azure Blob Storage e processa todos os arquivos abaixo de /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 do date
correspondente não existir em um documento, o Atlas Data Federation adicionará.
Os usuários conectados à instância do banco de dados federado podem usar a Linguagem de Query MongoDB e as aggregations compatíveis para analisar dados no bucket S3 por meio da datacenter-alpha-metrics.hardware
coleção .