Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Learn why MongoDB was selected as a leader in the 2024 Gartner® Magic Quadrant™
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
MongoDBchevron-right

Atlas Query Federation SQL para formar poderosas interações de dados

Pavel Duchovny3 min read • Published Jun 20, 2022 • Updated Aug 13, 2024
SQLMongoDBVisualização de dados
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Artigo
star-empty
star-empty
star-empty
star-empty
star-empty
As plataformas modernas têm uma grande variedade de fontes de dados. À medida que as empresas crescem, elas precisam evoluir constantemente seu gerenciamento de dados e ter ferramentas sofisticadas, escalonáveis e convenientes para analisar dados de todas as fontes para produzir insights de negócios.
O MongoDB desenvolveu uma linguagem de query rica e poderosa, incluindo uma framework de aggregation muito robusta .
Isso foi feito principalmente para otimizar a maneira como os desenvolvedores trabalham com os dados e fornecer excelentes ferramentas para manipular e consultar documentos do MongoDB.
Dito isto, muitos desenvolvedores, analistas e ferramentas ainda preferem a linguagem SQL legada para interagir com as fontes de dados. O SQL tem uma base sólida em torno da união de dados, pois esse era um conceito central do modelo de normalização do relational database legados.
Isso faz com que o SQL tenha uma sintaxe conveniente quando se trata de descrever junções.
Oferecer aos usuários do MongoDB a capacidade de aproveitar o SQL para analisar documentos de várias fontes e, ao mesmo tempo, ter um esquema e um armazenamento de dados flexíveis é uma solução atraente para empresas.

Fontes de dados e o desafio

Considere um requisito para criar uma única exibição para analisar dados de sistemas operacionais diferentes. Por exemplo:
  • Os dados do cliente são gerenciados nos sistemas de administração de usuários (REST API).
  • Os dados financeiros são gerenciados em um cluster financeiro (cluster Atlas).
  • As transações de ponta a ponta são armazenadas em arquivos em armazenamento frio coletado de vários fornecedores externos (armazenamento de objetos na nuvem - Amazon S3 ou armazenamento do Microsoft Azure Blob Storage).
Como podemos combinar e juntar melhor esses dados?
O MongoDB Atlas Query Federation conecta múltiplas fontes de dados utilizando os diferentes tipos de armazenamento de dados. Depois que as fontes de dados forem mapeadas, podemos criar coleções consumindo esses dados. Essas coleções podem ter esquema SQL gerado, permitindo-nos realizar junções sofisticadas e fazer queries JDBC a partir de várias ferramentas de BI.
Neste artigo, mostraremos o poder extremo oculto no Atlas SQL Query.

Configurando minha instância de banco de dados federado

Na visualização a seguir, criei três principais armazenamentos de dados:
  • Armazenamento de transações S3 (dados de amostra S3 ).
  • Contas dos meus clusters do Atlas (dados de amostra sample_analytics.accounts).
  • Dados do cliente de uma fonte https segura.
Consultar fontes de federação
Mapeei as lojas em três collection no banco de dadosFinTech:
  • Transactions
  • Accounts
  • CustomerDL
Agora, posso vê-los por meio de uma conexão do Query Federation como coleções do MongoDB.
Vamos pegar nossa string de conexão da instância do Query Federation na IU do Atlas.
Conexão
Essa connection string pode ser usada com nossas ferramentas de BI ou aplicativos de clientes para executar queries SQL.

Conectando e utilizando $sql e db.sql

Depois de nos conectarmos à instância da Federação de Consultas por meio de um shell mongosh, podemos gerar um esquema SQL para nossas coleções. Isso é opcional para que os operadores JDBC ou $sql reconheçam coleções como SQL “tables”, pois essa etapa é feita automaticamente para coleções recém-criadas, no entanto, é sempre bom estar familiarizado com os comandos disponíveis.

Gere o esquema SQL para cada coleção:

1use admin;
2db.runCommand({sqlGenerateSchema: 1, sampleNamespaces: ["FinTech.customersDL"], sampleSize: 1000, setSchemas: true})
3{
4 ok: 1,
5 schemas: [ { databaseName: 'FinTech', namespaces: [Array] } ]
6}
7db.runCommand({sqlGenerateSchema: 1, sampleNamespaces: ["FinTech.accounts"], sampleSize: 1000, setSchemas: true})
8{
9 ok: 1,
10 schemas: [ { databaseName: 'FinTech', namespaces: [Array] } ]
11}
12db.runCommand({sqlGenerateSchema: 1, sampleNamespaces: ["FinTech.transactions"], sampleSize: 1000, setSchemas: true})
13{
14 ok: 1,
15 schemas: [ { databaseName: 'FinTech', namespaces: [Array] } ]
16}

Executando queries SQL e junções usando $sql stage:

1use FinTech;
2db.aggregate([{
3 $sql: {
4 statement: "SELECT a.* , t.transaction_count FROM accounts a, transactions t where a.account_id = t.account_id SORT BY t.transaction_count DESC limit 2",
5 format: "jdbc",
6 formatVersion: 2,
7 dialect: "mysql",
8 }
9}])
10
11// Equivalent command
12db.sql("SELECT a.* , t.transaction_count FROM accounts a, transactions t where a.account_id = t.account_id SORT BY t.transaction_count DESC limit 2");
A consulta acima solicitará informações da conta e as contagens de transações de cada conta.

Conexão via JDBC

Vamos conectar uma ferramenta de BI poderosa, como o Tableau, com o driver JDBC.
Drivers mais recentes

Conecte-se ao Tableau

Você tem 2 opções principais para conectar, via connector "MongoDB Atlas" ou via connector JDBC geral. Siga as instruções e pré-requisitos relevantes nesta páginade documentação.
connector "MongoDB Atlas da MongoDB"
Pesquise e clique no connector "MongoDB Atlas by MongoDB " e forneça as informações que apontam para o nosso URI da Federação de Query. Veja o seguinte exemplo:
Conector Tablue
"JDBC" connector
Definindo arquivoconnection.properties.
1user=root
2password=*******
3authSource=admin
4database=FinTech
5ssl=true
6compressors=zlib
Clique no connector "Other Databases (JDBC)", copie o formato de conexão JDBC e carregue o arquivoconnection.properties.
Seleção do Tableau Connector
Quando os dados forem lidos com êxito, as coleções aparecerão no lado direito.

Configuração e união de dados

Mesas de configuração
Podemos arrastar e soltar collection de diferentes fontes e vinculá-las.
Unindo tabelas com arrastar e soltar
No meu caso, conectei Transactions => Accounts com base no campo Account Id, e contas e usuários com base no campo Account Id a Accounts.
Visualização unificada de dados de contas, transações e usuários
Nessa exibição, veremos uma tabela unificada para todas as contas com nomes de usuário e suas transações no trimestre inicial.

Resumo

O MongoDB tem todas as ferramentas para ler, transformar e analisar seus documentos para quase todos os casos de uso.
Estejam seus dados em um cluster operacional do Atlas, em um serviço ou em armazenamento frio, como o armazenamento de objetos na cloud, o Atlas Query Federation fornecerá a capacidade de unir os dados em tempo real. Com a opção de usar a sintaxe SQL de junção avançada e ferramentas de BI baseadas em SQL, como o Tableau, você pode obter valor dos dados rapidamente.
Experimente o Atlas Query Federation com suas ferramentas de BI e SQL hoje mesmo.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Artigo
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Encryption in Use: The Magic of MongoDB for Secure Queries


Dec 20, 2024 | 7 min read
Tutorial

Crie uma API RESTful com .NET Core e MongoDB


Sep 11, 2024 | 8 min read
exemplo de código

Inicialização reativa do Java Spring com MongoDB


Apr 02, 2024 | 5 min read
Início rápido

Como criar um aplicativo CRUD com MongoDB, Quarkus e GraalVM


Aug 29, 2024 | 7 min read
Sumário