Mostrando entradas 1 para 10 de 36
Próximo 10 Entradas mais antigos »
Displaying posts with tag: sql (reset)
Persistência poliglota: indo além do SQL!

O conteúdo deste artigo é de uma palestra que ministrei na Faccat este ano. Os slides estão no final do artigo, e o vídeo da palestra começa em 1h13 logo abaixo:

Há uns 10 anos, mais ou menos, eu estava fazendo as cadeiras de Banco de Dados 1 e Banco de Dados 2 na faculdade de Ciência da Computação. Eu via como modelar um banco de dados relacional, como criar consultas e executar comandos SQL, além de álgebra relacional e um pouco de administração de banco de dados Oracle. Isso tudo me permitiu passar a construir sistemas de verdade, com persistência de dados. A base em Oracle me permitiu aprender o simplíssimo MS Access rapidamente e, mais tarde, migrar facilmente para o concorrente, SQL Server. Posteriormente cheguei ainda a trabalhar com …

[Leia mais]
Criando análises de dados com o Presto e o Parquet na Uber

Desde determinar os pontos de encontro mais convenientes para o motorista até projetar o caminho mais rápido, o Uber utiliza análises orientadas por dados para criar experiências de viagens perfeitas. Dentro da engenharia, são analisados os processos de tomada de decisão. Conforme expandimos para novos mercados, a habilidade de agregar dados precisa e rapidamente se torna ainda mais importante.

No início de 2014, a Uber tinha apenas algumas centenas de funcionários ao redor do mundo. Mas no final de 2016, tínhamos mais de duas mil pessoas executando mais de cem mil consultas analíticas diariamente. Nós precisávamos de um sistema de consultas de dados que pudesse acompanhar nosso crescimento. Para executar as consultas analíticas em várias fontes de dados, nós desenvolvemos um sistema analítico que aproveita o Presto, um motor SQL distribuído open source para grandes …

[Leia mais]
7Masters MySQL: MySQL New Features JSON Datatype

Em sua talk, Alexandre “Taz” tratou sobre o uso do JSON Datatype para diminuir a complexidade da aplicação, reduzir a complexidade das buscas, e diminuir a necessidade de conhecimento tecnológico para a aplicação.

Defql: Consultas SQL como funções Elixir

O mundo Elixir é funcional. Não há objetos ou instâncias. Nesse caso, eu me fiz uma pergunta.

Preciso de ORM?

Minha resposta a essa pergunta é não.

Preciso de dados. Dados puros que vêm diretamente do banco de dados. Outra pergunta que vem à minha mente.

Preciso de um DSL para consultar banco de dados?

Outra resposta negativa.

Temos uma ótima linguagem criada para consultar o banco de dados. SQL, lembra?

E se eu pudesse criar uma função Elixir que tenha um corpo SQL? E se eu pudesse usar essa função exatamente como qualquer outra função do Elixir? Seria ótimo, não é?

Podemos arquivar isso usando o sistema macro muito poderoso do Elixir. No entanto, essa também é uma boa maneira de aprender como as macros do Elixir funcionam.

Para arquivar isso, eu comecei a escrever …

[Leia mais]
Como fazer subconsultas: um passo a passo

Apesar da maioria das consultas feitas por quem está começando em SQL ser com SELECT externos, nesse artigo vou apresentar um recurso bastante útil que vai ajudar você a melhorar a legibilidade da sua query assim como, em alguns casos, otimizar o tempo do retorno das suas informações para o usuário. As chamadas subconsultas.

Uma subconsulta nada mais é do que uma instrução SELECT dentro de outro SELECT que retorna algumas colunas específicas que são usadas em algumas funções como INSERT e UPDATE por exemplo.

1. Tipos de subconsultas

Segue abaixo os tipos de subconsultas:

  • Subconsultas de uma única linha: retornam zero ou uma linha para a instrução SQL externa;
  • Subconsultas de várias linhas: retornam uma ou mais linhas para a SQL externa;
  • Subconsultas de várias colunas: retornam mais de uma coluna …
[Leia mais]
Defql: consultas SQL como funções Elixir

O mundo do Elixir é funcional. Não existem objetos ou instâncias. Neste caso, eu me pergunto: eu preciso de ORM?

Minha resposta a esta pergunta é não.

Eu preciso de dados. Dados puros que venham direto do banco de dados. Outra questão que me vem à mente: preciso de um DSL para consultar o banco de dados?

Novamente, não!

Temos uma grande linguagem criada para consultar bancos de dados. O SQL, lembra?

E se eu pudesse criar uma função em Elixir que tenha o corpo de um SQL? E se eu pudesse usar esta função exatamente como qualquer outra função Elixir? Seria ótimo, não seria?

Podemos fazer isso utilizando o poderoso sistema de macro do Elixir. No entanto, esta também é uma boa maneira de aprender como as macros do Elixir funcionam.

Para fazer isso, eu comecei a escrever o Defql . O Defql é um pacote Elixir que fornece uma maneira simples …

[Leia mais]
Defql: consultas SQL como funções Elixir

O mundo do Elixir é funcional. Não existem objetos ou instâncias. Neste caso, eu me pergunto: eu preciso de ORM?

Minha resposta a esta pergunta é não.

Eu preciso de dados. Dados puros que venham direto do banco de dados. Outra questão que me vem à mente: preciso de um DSL para consultar o banco de dados?

Novamente, não!

Temos uma grande linguagem criada para consultar bancos de dados. O SQL, lembra?

E se eu pudesse criar uma função em Elixir que tenha o corpo de um SQL? E se eu pudesse usar esta função exatamente como qualquer outra função Elixir? Seria ótimo, não seria?

Podemos fazer isso utilizando o poderoso sistema de macro do Elixir. No entanto, esta também é uma boa maneira de aprender como as macros do Elixir funcionam.

Para fazer isso, eu comecei a escrever o Defql . O Defql é um pacote Elixir que fornece uma maneira simples …

[Leia mais]
Projetando o Euclid para tornar a engenharia de marketing do Uber mais sábia

Rápido, granular e com ROI confiável no desempenho de anúncios foram o nosso estopim para construir Euclid, a plataforma de marketing interno do Uber. No início deste ano, a Euclid substituiu um sistema legado que processava os dados do ROI manualmente, enquanto lutava para se manter escalável com o Uber e a complexidade dos dados.

Ao contrário de qualquer solução fora da caixa, o Hadoop, ecossistema Euclid baseado em Spark, nos permite escalar o crescimento do Uber com uma arquitetura de plugin de API agnóstico de canal chamada MaRS, bem como um pipeline ETL personalizado que cede dados heterogêneos em um único esquema para uma consulta simples. Uma camada visual em cima da Euclid permite que os profissionais de marketing tirem métricas de ROI para otimizar o gasto com anúncios. As capacidades de reconhecimento de …

[Leia mais]
DatabaseCast: Pesquisas textuais, log e information retrieval

Olá, pessoal! Neste episódio, Mauro Pichiliani (Twitter | Blog), Wagner Crivelini (@wcrivelini) e o convidado Waldemar Neto mergulham de cabeça no texto para falar sobre pesquisas textuais, logs e information retrieval.

Você vai aprender é o que fuzzy matching, entender porque o LIKE e expressões regulares não vão salvar o dia, escolher o tênis para fazer exercícios, descobrir o que é a sigla ELK, ficar desconfiado com o que fazem com seus dados e discutir a polêmica: sistemas de recomendação ou a busca ajuda a converter mais no e-commerce?

[Leia mais]
DatabaseCast: DBA ogro

Olá, pessoal! Neste episódio, Mauro Pichiliani (Twitter | Blog), Wagner Crivelini (@wcrivelini) e o convidado Fabio Cotrim (dba.cotrim@gmail.com) assumem o comportamento ogro. Neste episódio, você vai aprender como se tornar um DBA ogro, falar não de forma romântica, vir anexado junto com o e-mail escrito com erros de português e em letras maiúsculas, negar WhitePapers, praticar o voo do urubu e exercitar a ironia e o sarcasmo.

DatabaseCast 69: DBA Ogro

[Leia mais]
Mostrando entradas 1 para 10 de 36
Próximo 10 Entradas mais antigos »