Quando se está começando na área de dados há aquela indecisão sobre quais tecnologias aprender. Falei um pouco sobre este tópico em um dos meus primeiros artigos (Qual a melhor linguagem para a área de dados?) onde apresentei as linguagens de programação mais populares para cada posição na área de dados e ressaltei que é uma das linguagens essenciais para os Analistas de Dados. Porém, as outras áreas, como Engenharia de Dados e Ciência de Dados também devem se dedicar a aprender SQL? Afinal, são muitas tecnologias e nós queremos estar preparados para os desafios o quanto antes, tentando não investir tempo em aprender tecnologias que raramente serão utilizadas.
Atualmente existem algumas alternativas ao SQL, como os ORMs e as IAs generativas. Os ORMs (Object-Relational Mapping) são frameworks que tentam substituir o SQL por funções que recebem como parâmetro a tabela e as colunas que devem ser buscadas. O grande problema é que estas funções cobrem muito bem as queries mais básicas do SQL, mas quando se deseja fazer algo um pouco mais complexo, o framework acaba se tornando mais complexo do que o próprio SQL. Certa vez, quando eu fui Tech Leader em um projeto de dados, pedi para o backend criar uma função que me retornaria alguns dados específicos. Ele me respondeu dizendo que não era possível, porque os dados estavam em duas tabelas separadas. Eu disse que bastava fazer o join entre as tabelas e continuou insistindo que não era possível. Foi só quando eu pedi para fazermos um pair programming que eu entendi que ele não sabia usar SQL e estava tentando fazer tudo utilizando um ORM. Neste caso, se tratava de um profissional backend e de nível júnior (um ótimo profissional, a propósito) e não acho que ele tinha obrigação de saber SQL. Porém, eu não pensaria o mesmo caso ele fosse um engenheiro de dados.

Outro caso, que infelizmente tem se tornado cada vez mais comum, são os profissionais que fazem tudo utilizando IA. Antes de mais nada, preciso dizer que quando penso que tem profissionais (muitos!!!!) que estão jogando nomes de tabelas e até diagramas ER (Entidade-Relacionamento) inteiros em IAs como o ChatGPT, isso me dá calafrios! Ao fazer isso, a pessoa está causando um grave vazamento na estrutura mais sensível da empresa. E podemos até pensar que estas empresas (como a OpenAI) são confiáveis, até um dia descobrirmos que elas não eram. Por tanto, caso a sua empresa não possua uma IA própria, jamais coloque informações sobre o seu banco de dados em uma IA externa.
Contudo, vamos continuar no tema da geração de queries utilizando IAs generativas. Empresas como a Databricks já possuem uma IA que realiza um entendimento semântico dos dados e um mapeamento das tabelas de modo que é possível pedir os dados desejados para a IA e ela irá retornar a query necessária para recuperar aqueles dados. Para ser honesto, eu nunca utilizei esta ferramenta e talvez ela seja uma ótima solução para otimizar o nosso tempo quando queremos fazer algo pontual. Contudo, ainda não vejo como algo que torne dispensável o conhecimento de SQL.

O meu argumento para o conhecimento do SQL é apenas um: Explorar os dados! Talvez esta tenha sido a coisa que mais fiz durante toda a minha vida profissional. Navegar pelos dados, tentar identificar padrões, criar combinações etc. É preciso ler os dados para entendê-los! Quando se domina o SQL fica fácil navegar pelos dados. A sensação é como se tivéssemos aprendido o idioma que os dados falam e fossemos capazes de realizar perguntas diretamente para eles. Na verdade, acho que esta é uma boa metáfora para utilizarmos. A diferença entre saber SQL e utilizar uma IA para criar as queries é a mesma de saber um idioma e usar um tradutor automático para realizarmos uma conversa. O tradutor pode até funcionar relativamente bem, mas a conversa não fica natural e eventualmente você pode esbarrar em coisas que não possuem uma tradução muito boa (se você já recebeu uma tradução literal do Google tradutor você sabe do que eu estou falando).
Vou ainda mais a diante com a metáfora do idioma. Pense no SQL como o francês. Se você vai morar na França, sua vida será muito difícil caso não domine o francês. Se você trabalhar em uma empresa francesa, talvez a sua vida não seja tão difícil, mas haverá uma barreira que te impedirá de avançar caso você não domine o francês. Agora, caso você continue morando no Brasil e não tenha nenhum contato com pessoas que falem exclusivamente francês, você não tem nenhuma necessidade de aprender o francês. Acredito que se você planeja ser um Analista de Dados, é como ir morar na França. Se pretende ser um Cientista de Dados, é como morar em Quebec (cidade canadense em que o idioma oficial é o francês, mas quase todo mundo sabe falar inglês). E se você pretende ser um Engenheiro de Dados, é como trabalhar em uma empresa francesa. O único cenário onde não há nenhuma necessidade de saber SQL é se você não pretende atuar na área de dados.
Por fim, a ideia deste artigo é ser uma introdução (ou um convite) para uma discussão, então deixe o seu comentário sobre o que você pensa do SQL. Acredita que ainda é algo relevante? A minha experiência diz que sim, mas a sua pode dizer outra coisa. Vamos continuar este debate!


Deixe um comentário