MAQL x SQL
Apesar das semelhanças na construção da sintaxe e nas referências de argumentos predefinidos, a MAQL não é igual ao SQL.
O SQL é uma linguagem de banco de dados relacional de uso geral para ler e escrever dados. A MAQL é multidimensional (consulte MAQL e multidimensionalidade) e os dados são sempre avaliados com base no contexto.
Esta seção descreve algumas distinções elementares, porém importantes.
No nível técnico, a plataforma GoodData separa a maneira como os dados são armazenados no banco de dados (modelo de dados físicos) da maneira como os objetos de dados se relacionam (modelo de dados lógicos). Os desenvolvedores de espaço de trabalho criam o modelo de dados lógicos por meio de uma interface gráfica simples e, quando o modelo é publicado em um espaço de trabalho, o modelo de dados físicos é devidamente criado ou atualizado.
MAQL x SQL
A MAQL permite escrever métricas de relatórios complexas e avançadas em uma fração do tempo em comparação com o SQL. Dê uma olhada abaixo:
Como você verá nos exemplos a seguir, o uso da sintaxe da MAQL é mais eficiente que o da SQL.
Diferenças na consulta de dados
Nesta seção, você explorará as diferenças em como MAQL e SQL abordam a consulta de dados.
Suponhamos que você esteja interessado em dados de vendas de seu banco de dados. No SQL, a consulta pode ser a seguinte:
SELECT SUM(Amount) FROM sales_data;
Resultados em:
1 000 000
Você vendeu US $ 1.000.000 em produtos. Agora, suponhamos que você precise saber quanto desses dados são gerados pelas vendas de calçados. No SQL:
SELECT SUM(amount) FROM sales_data JOIN product_data ON sales_data.product_type_id=product_data.product_type_id WHERE product_data.name = "shoes";
Resultados em:
500 000
Para entender como criar essa segunda consulta, você deve ter comando sobre o seguinte:
- Entender tabela e coluna como conceitos de banco de dados.
- Familiaridade com a álgebra relacional.
- Entender como e onde seus dados são armazenados no banco de dados para consultá-los.
A MAQL assume uma abordagem diferente. Você não precisa saber onde e como seus dados são armazenados. O equivalente da primeira consulta acima é o seguinte na MAQL:
SELECT SUM(Amount)
Note que FROM sales_data não é necessário. Todos os valores relevantes são somados da tabela apropriada no armazenamento de dados. Através do Portal GoodData, você pode executar consultas sem entender os detalhes de como os dados são realmente armazenados no banco de dados.
O equivalente da segunda consulta é o seguinte na MAQL:
SELECT SUM(Amount) WHERE Product Type = shoes
Não há necessidade de lembrar nomes de tabelas ou descobrir junções de tabelas.
Exemplos
Os exemplos a seguir mostram como a criação de uma métrica de lucro é diferente quando escrita em SQL x MAQL:
Exemplo de reutilização
SQL | MAQL |
---|---|
Consulta única
| Métrica reutilizável
|
Exemplo de combinação de várias métricas
SQL | MAQL |
---|---|
Consulta única
| Métrica reutilizável
|