Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

SAVEPOINT

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

PostgreSQL, o banco de dados mais amado… todo ano isso?

22 de Junho de 2022, 20:52, por Savepoint - 0sem comentários ainda

Então… saiu mais uma pesquisa do StackOverflow, e pra variar, só dá PostgreSQL de ponta a ponta… Não é só o DB-Engines não, geral e não é de hoje…

O Banco de dados mais amado…

O mais desejado (o que mais gente quer começar a usar)

O mais utilizado por profissionais

Sorte de principiante?

Só que não! Veja a pesquisa de anos anteriores



O futuro do PGConf.Brasil

10 de Junho de 2022, 16:59, por Savepoint - 0sem comentários ainda

O PGConf.Brasil 2022 está no ar, com tudo em cima para acontecer nos dias 26 e 27 de agosto:

  • Há mais de 75 dias para o evento já temos mais de 100 inscritos
  • Uma grade espetacular com 4 salas simultâneas resultado do maior CFP da nossa história, com 93 propostas recebidas
  • Temos literalmente um engarrafamento de patrocinadores, e estamos tendo que lidar com o limite de espaço físico para estandes no saguão do evento
  • Pela primeira vez vamos utilizar tradução simultânea para o auditório principal, que possui em sua maior parte palestrantes internacionais
  • O Happy Hour também está garantido com as nossas tradicionais cervejas artesanais feitas exclusivamente para o evento pela Brew Club Co
  • Estamos com um time incrível trabalhando diariamente na organização, incluindo boa parte da nossa equipe: eu, Fabrizio Melllo, Gabriel Baggio, Karin Keller, Letícia Mirapalheta, Mariana Oortman, Patrícia Muniz e Taís Bonizoli.

Enfim, com a seca de 2 anos sem eventos presenciais, este promete ser épico.

Em 2022, vamos será a nossa 10a Conferência Brasileira de Postgres, que já passeou um pouco por aí, já tivemos:

  • 2007: PGCon Brasil em São Paulo / SP
  • 2008: PGBR em Campinas / SP
  • 2009: PGBR em Campinas / SP
  • 2011: PGBR em São Paulo / SP
  • 2013: PGBR em Porto Velho / RO
  • 2015: PGBR em Porto Alegre / RS
  • 2017: PGBR em Porto Alegre / RS
  • 2018: PGConf Brasil em São Paulo / SP
  • 2019: PGConf Brasil em São Paulo / SP
  • 2022: PGConf Brasil em São José dos Campos / SP

Foi um longo caminho até aqui. Em 2006 a gente estava no CONISLI em pleno Anhiembi em São Paulo, quando juntamos uma turminha que já se encontrava em outros eventos como o FISL em Porto Alegre e resolvemos fazer um evento só para o PostgreSQL. Eu já vinha da organização de 3 Fóruns regionais do PSL ABCD e juntamos grandes figuras como o Leonardo Cezar, Diogo Biazus, Euler Taveira, Fernando Ike, Dickson Guedes e muitos outras figuras que fizeram história.

O primeiro evento em 2007 foi feito com apoio da Tempo Real Eventos, que tinha toda uma logística para fazer eventos e simplificou muito a nossa vida. A gente cuidou da grade e dos patrocínios, eles cuidaram praticamente do resto. A partir de 2008 nós resolvemos nos virar por nós mesmos, mas precisávamos de um CNPJ para receber o dinheiro das inscrições, patrocínios, e pagar os fornecedores, tudo de forma correta. Foi aí que surgiu a ideia de nos associarmos a ASL, que era a entidade responsável por organizar o FISL. Até cogitamos em criar a nossa própria entidade, mas isso daria muito trabalho e achamos mais prático nos associar a quem já estava na pista. Eles criaram uma conta bancária para nós e colocaram a disposição o pessoal da contabilidade para nos apoiar. Deu certo, apesar da burocracia, mas em 2017 o FISL estava literalmente desmoronando, precisávamos de um novo abrigo.

Em 2018 a Timbira assumiu esse papel e partiu pra cima da organização do evento, trazendo praticamente as mesmas pessoas envolvidas na organização dos eventos anteriores. E em todo o momento, os nossos eventos foram reconhecidos pela comunidade internacional como eventos da comunidade e não eventos da Timbira. Em 2018 já haviam regras claras sobre como fazer isso e um selo de “Reconhecimento de evento da comunidade“. Isto envolve coisas como autonomia da banca avaliadora do Call For Papers, e ter a maioria dos seus membros de fora da Timbira. Prestação de contas dos gastos e definição do destino para o lucro, coisas assim.

Estas regras para conseguir o selo foram sendo aprimoradas aos poucos e atualmente a comunidade internacional se posiciona explicitamente favorável a existência de organizações sem fins lucrativos para gerir estes eventos. Por outro lado, nos preocupamos aqui na Timbira em fortalecer a comunidade brasileira e todo o seu ecossistema em torno. A Timbira não lucra com a realização das conferências, exceto de forma indireta, assim como ganham todos os que participam. Portando no começo de 2022 a Timbira decidiu que este seria o último ano em que organizaremos o PGConf.Brasil, que devemos voltar a organizar o evento a partir da comunidade e não de uma empresa. Para isso o ideal seria caminhar para a criação de uma entidade própria para isso, uma OSCIP com as pessoas interessadas em colaborar com o PGConf.Brasil e outros eventos da comunidade.
Aprendemos com outras experiências de outras entidades do gênero que deram certo (como Associação Python Brasil) e que não deram certo (como Open Office Brasil). Com isso a ideia será limitar o escopo da OSCIP a eventos com reconhecimento da comunidade de Postgres. Assim podemos evitar problemas futuros e focar naquilo que realmente interessa: promover a comunidade de Postgres através de eventos que promovam a troca de conhecimento e o networking.

Pessoalmente, eu acho que um bom começo seria discutir o assunto e montar um rascunho de como seria essa OSCIP junto com os participantes do canal PGConf.Brasil do Telegram. Gostaria muito que seja qual for a decisão da comunidade, ela se concretize até o encerramento do PGConf.Brasil 2022, já visando a organização do evento para 2023. Mas isso é uma posição pessoal, o que irá acontecer a comunidade é quem decide. Seja como for, não vou deixar de contribuir como membro da comunidade (como sempre fizemos), mas sim como sócio da Timbira. A Timbira já possui hoje uma conta bancária separada para o evento e todo o saldo ao final do evento deste ano será revertido para a entidade iniciar os seus trabalhos. Então, se você tem interesse em colaborar com o evento e estar junto conosco nessa jornada, convido você a entrar no canal do Telegram e iniciar esta jornada conosco. Vamos juntos?



Tendências no mercado de banco de dados

1 de Junho de 2022, 17:50, por Savepoint - 0sem comentários ainda

Hoje saíram os novos dados do DB-Engines com os números acumulados até o final de maio/2022. Eu estou sempre acompanhando a evolução do Ranking . Não são infalíveis, mas talvez seja hoje a fonte de informação mais confiável que temos sobre o uso de bancos de dados. Infelizmente não existem números confiáveis sobre market share, uma vez que estamos falando de um mercado liderado por soluções Open Source, ou seja, não dá para contar o número de licenças pagas neste cenário. Para resolver esse problema o DB-Engines trabalha com uma pontuação baseada em menções em sites na internet, Google Trends, discussões no Stack Overflow e DBA Stak Exchange, oferta de vagas de empregos, Perfis no LinkedIn e relevâncias em redes sociais como o Twitter. Acho bastante razoável. E mais, eles acumulam dados de uma série histórica de quase 10 anos!

O futuro é livre?

Então deixe-me começar pelo final. Quero mostrar um gráfico muito significativo para ilustrar a minha afirmação no parágrafo anterior, onde afirmo que o mercado de banco de dados é hoje “liderado por soluções Open Source”:

https://db-engines.com/en/ranking_osvsc

Você pode até dizer que no último ano há uma tendência de acomodação com os bancos de dados comerciais com 48,8% e os bancos Open Source com 51,2%. Mas é bem diferente de 10 anos atrás onde a relação era de 64,5% contra 35,5%. Não sei se a vantagem do Open Source vai aumentar pouco ou muito nos próximos anos, mas dificilmente vamos assistir uma reversão desse quadro num curto espaço de tempo. Por outro lado… crescem os bancos de dados como serviço na nuvem, que capturam softwares de código aberto, transformando em produtos fechados, como o Aurora da Amazon, fora os já tradicionais serviços como o PaaS ou DBaaS que se espalharam para praticamente todos provedores na nuvem, e agora temos novos Serveless Database na mesma linha. Então para aqueles que sonham com um mundo livre, as preocupações não são mais software de código fechado X código aberto….

Destaques para os últimos 12 meses

Olhando para os últimos 12 meses os destaques positivos continuam os mesmos que deram na virada do ano a medalha de ouro para o Snowflake e a medalha de prata para o PostgreSQL. Mas hoje a medalha de bronze não iria mais para o MongoDB que acumula uma baixa de 7,49 pontos nos últimos 12 meses, mas sim para o Microsoft Access! É isso mesmo, dá pra acreditar, ele cresceu 26.88 pontos no período. É claro que se você olhar para a evolução dele nos últimos 10 anos, temos uma tendência de queda, mas há uma recuperação realmente surpreendente recentemente. Alguém aí sabe me explicar? Eu esperava uma queda lenta e dolorosa para o Access, como vemos com o DB2, mas alguma coisa está empurrando o Access para cima.

Houve quem achasse que era pegadinha de 1o de abril esses dias:

https://twitter.com/MarkusWinand/status/1509904492304740381

De qualquer forma, impressionante é o crescimento do Snowflake que surgiu no final de 2016 e hoje figura na 13a posição do ranking com 96,42 pontos, devendo passar em breve competidores tradicionais como MariaDB, Cassandra e SQLite. Mas será que esse crescimento acelerado vai se sustentar por muito tempo? Não é novidade algum banco ter um rápido crescimento mais não sustentar por muito tempo, como por exemplo o MariaDB, o Elasticsearch, Redis, SAP Hana, Microsoft Azure Cosmos DB e mais recentemente o Microsoft Azure SQL Database.

Olhando o gráfico parece dizer que não… mas se eles continuarem a atrair investimentos, quem sabe? O fato é que romper a barreira dos 200 pontos e chegar no Top5 não é para qualquer um. Eu diria que a disputa até o 6o lugar permanece bem embolada:

Top5

Se a gente olhar apenas para o Top5, as coisas parecem bem mais estáveis. MongoDB e PostgreSQL ficaram embolados no 4o e 5o lugar por um tempo, mas há um bom tempo o PostgreSQL tem se consolidado na 4a posição. Vale notar que há 10 anos atrás o PostgreSQL estava com 195 pontos e hoje tem 620 pontos. Ou seja, triplicou de tamanho e mantem um crescimento bem sustentável. O MongoDB saiu de 101 pontos e está em 480 pontos, um crescimento maior ainda, mas não apresenta mais uma tendência de crescimento nos últimos meses.

Oracle, MySQL e Microsoft SQL Server lideram o topo do ranking com boa folga e com oscilações, mas mantém uma boa distâncias dos demais. Embora os 3 primeiros colocados tenham uma pontuação menor que há 10 anos atrás, apenas o SQL Server tem uma tendência clara de queda, saindo de 1249 pontos para 933 pontos.

Uma boa pergunta hoje é: Quando o PostgreSQL vai alcançar o Microsoft SQL Server? Se pensarmos que o PostgreSQL cresceu 425 pontos e Microsoft SQL Server caiu 316 pontos, a diferença atual de 313 pontos deve desaparecer nos próximos anos, com a diferença caindo mais de 100 pontos por ano. Será que em 2025 o PostgreSQL vai alcançar o 3o lugar?

E a nuvem?

Mas antes de dizer que a Microsoft está fora do jogo, é preciso tirar os pés do chão e ir para as nuvens… a Microsoft está investindo pesado numa série de novos produtos específicos para rodar na Azure:

  • Microsoft Azure SQL Database em 15o lugar, com 86,01 pontos
  • Microsoft Azure Cosmos DB em 27o lugar, com 40,98 pontos
  • Microsoft Azure Synapse Analytics em 36o lugar, com 21,33 pontos
  • Microsoft Azure Search em 58o lugar, com 7,61 pontos
  • Microsoft Azure Data Explorer em 59o lugar, com 7,34 pontos
  • Microsoft Azure Table Storage em 77o lugar, com 5,76 pontos

Me parece que a Microsoft está mudando de estratégia para investir mais na nuvem. E não está sozinha, claro, a AWS, líder no segmento tem seus brinquedinhos também:

  • Amazon DynamoDB em 16o lugar com 83,88 pontos
  • Amazon Redshift em 31o lugar com 26,19 pontos
  • Amazon Aurora em 45o lugar com 13,14 pontos
  • Amazon Neptune em 108o lugar com 2,82 pontos
  • Amazon CloudSearch em 120o lugar com 2,21 pontos
  • Amazon SimpleDB em 122o lugar com 2,10 pontos
  • Amazon DocumentDB em 128o lugar com 1,87 pontos
  • Amazon Timestream em 174o lugar com 1,02 pontos
  • Amazon Keyspaces em 225o lugar com 0,58 pontos

Uma posição peculiar, o PostgreSQL

E a mesma estratégia pode ser verificada com o Google, Alibaba e Oracle. Notem que o PostgreSQL acaba aparecendo várias vezes no ranking com seus derivados, em diferentes situações além da 4a posição:

  • PostGIS em 28o lugar, com 31,68 pontos
  • Amazon Redshift em 31o lugar, com 26,19 pontos
  • Netezza em 37o lugar, com 19,48 pontos
  • Greenplum em 43o lugar, com 13,27 pontos
  • Amazon Aurora em 44o lugar, com 13,14 pontos
  • TimescaleDB em 83o lugar, com 4,56 pontos
  • EDB Postgres em 123o lugar, com 2,10 pontos
  • Citus em 133o lugar, com 1,74 pontos
  • Postgres-XL em 208o lugar, com 0,71 pontos
  • AgensGraph em 322o lugar, com 0,09 pontos
  • ToroDB em 340o lugar, com 0,03 pontos

Isso torna o PostgreSQL realmente único no ranking, por ter derivações distantes como o Redshift, versões que são apenas extensões, como o PostGIS, Citus e TimescaleDB e adaptações para a nuvem, como o Aurora e agora o AlloyDB recém lançado pelo Google, que logo vai aparecer no ranking.

Sobre a Oracle

No meio disso tudo ainda me intriga o fato de outros produtos da Oracle não apareçam explicitamente no ranking, o que poderia até estar enviesando o resultado para cima e para baixo: se o Exadata e o Autonomous Database estiverem na conta da primeira posição, deixa a comparação com a Microsoft equivocada, se está faltando computar dados sobre eles, então a Oracle pode estar sendo subestimada no ranking, e eles terem uma influência maior do que parece. Novamente aqui, alguém tem algum palpite?

Conclusão

Seja como for, duas tendências parecem claras hoje em dia: Bancos de dados Open Source e baseados em OpenSource continuam ganhando tração… e sim, o futuro dos bancos de dados está na nuvem.



Jogando Termo com Postgres

16 de Março de 2022, 11:19, por Savepoint - 0sem comentários ainda

Esses dias, no meio do happy hour da Timbira, estava comentando da última partida de Termo, que virou mania recentemente. Aí uma colaga perguntou qual a palavra você utiliza para começar o jogo? Depois de ver que o nosso expert Guedes já tinha pego o dicionário para brincar no banco de dados, resolvi responder a pergunta com um pouco de SQL

Vejamos como começar… o jogo Termo tem uma página onde ele diz que utiliza um dicionário com licença livre, disponível aqui. Então, basta baixar o dicionário e importar no seu banco de dados (aqui estou fazendo com PostgreSQL, mas com algumas diferenças, você pode fazer em outros bancos de dados, claro):

CREATE TABLE palavras (p text);
COPY palavras(p) FROM '/tmp/palavras.txt' ;

Ou seja, criei uma tabela chamada palavras com uma única coluna chamada p e importei os dados nela. Simples e rápido.

Depois resolvi filtrar apenas as palavras com 5 letras:
SELECT p FROM palavras WHERE length(unaccent(p)) = 5;
Notem aqui que eu utilizei a função unaccent, pois palavras acentuadas podem contar como mais de 1 byte.

Agora como seria saber quais palavras começam com TOR e terminam com A?

SELECT p 
FROM palavras
WHERE
    length(unaccent(p)) = 5 AND
    unaccent(p) LIKE 'tor_a';

p
-----
torda
torba
torga
torma
torna
torra
torsa
torta
torva
torça
tória
(11 rows)

Já dá pra ver que é possível brincar bastante com isso.

Agora uma contribuição do nosso colega Guedes que eu tomei a liberdade de adaptar para o meu exemplo aqui. Quais são as letras mais utilizadas na primeira posição da palavra?

SELECT 
    substring(unaccent(p) FROM 1 FOR 1) letra,
    count() qt, 
    repeat('█', (count()/40)::int) "%"
FROM palavras
WHERE length(unaccent(p)) = 5
GROUP BY 1
ORDER BY 2 DESC;

letra | qt | %
-------+------+------------------------------------------------------------
a | 2255 | ████████████████████████████████████████████████████████
c | 1623 | ████████████████████████████████████████
p | 1354 | █████████████████████████████████
m | 1347 | █████████████████████████████████
b | 1156 | ████████████████████████████
t | 1151 | ████████████████████████████
s | 1127 | ████████████████████████████
r | 1007 | █████████████████████████
f | 929 | ███████████████████████
l | 869 | █████████████████████
g | 867 | █████████████████████
e | 746 | ██████████████████
d | 690 | █████████████████
v | 613 | ███████████████
o | 610 | ███████████████
i | 598 | ██████████████
n | 575 | ██████████████
u | 413 | ██████████
j | 361 | █████████
z | 271 | ██████
h | 259 | ██████
x | 160 | ████
q | 82 | ██
k | 11 |
w | 5 |
y | 3 |
(26 rows)

E agora, para responder a pergunta da minha colega… eu quero saber primeiro quais são as 5 letras mais utilizadas no dicionário, para depois escolher palavras que utilizem as 5:

SELECT l, count(1) AS q
FROM
    palavras,
    (SELECT CHR(i) AS l FROM generate_series(97,122) AS l(i)) AS letra
WHERE p ~ l
GROUP BY l
ORDER BY q DESC
LIMIT 5;

l | q
---+--------
a | 942848
e | 808949
r | 720964
s | 714080
i | 703338
(5 rows)


Agora que eu já sei que são as letras A, E, R, S e I, vou procurar palavras que tenham apenas estas 5 letras:

SELECT p
FROM palavras
WHERE
    length(unaccent(p)) = 5
AND unaccent(p) LIKE '%a%'
AND unaccent(p) LIKE '%e%'
AND unaccent(p) LIKE '%i%'
AND p LIKE '%r%'
AND p LIKE '%s%'
;
p-----aires
areis
eiras
erais
reais
ieras
rasei
raies
sairé
sarei
áries
seira
seria
érias
(14 rows)

E aí, vamos jogar?

SELECT p
FROM palavras
WHERE
    length(unaccent(p)) = 5
and unaccent(p) LIKE 'cai_a%'
and p not like '%s%'
and p not like '%r%'
and p not like '%n%'
and p not like '%g%'
and p not like '%m%'
and p not like '%t%'
and p not like '%p%'
and p not like '%l%'
and p not like '%f%'
and p not like '%x%'
and p not like '%b%';
    p
---------
 caída
 caiuá
 caiçá
 caíva
(4 rows)



8 de março…

9 de Março de 2022, 13:02, por Savepoint - 0sem comentários ainda

Tanto blá blá blá no dia internacional da mulher, né? Cara, flores você pode mandar qualquer dia. De preferência mande quando ela menos espera. Elogie sempre, não apenas as mulheres, mas seres humanos em geral. Pode elogiar as suas plantas e seus animais de estimação também, todos agradecem.

Mas hoje, eu queria lembrar de uma estagiária que tive o prazer de conhecer numa multinacional em que trabalhei há uns anos. Ela fez faculdade numa das melhores universidades públicas do país, e morava em outra cidade e tudo o mais. Ela me dizia que nunca tomou um porre numa festa durante toda a graduação. Que várias amigas já foram abusadas e estupradas em festas após beberem um pouco mais.

Lembro de outra amiga que mora numa cidade vizinha aqui. Ela adora pedalar, mas sempre se queixa de que precisa de companhia para pedalar, pois, é muito perigoso sair sozinha. Que já passou perrengue antes por ser mulher e andar desacompanhada!

Lembro da primeira vez que socorri uma vítima de estupro, de 14 anos, saindo de uma festa, foi estuprada por um amigo que supôs que ele tinha o direito…, mas o chocante foi após levar ela na delegacia, chamar a mãe e ver toda aquela cena lamentável, foi ir tomar um café na padaria do lado e ouvir os comentários dos policiais sobre o caso.

E conheço tantas histórias de abuso de meninas em família… gente que coisa triste. É tão comum que parece normal. E tem gente que ainda pensa que educação sexual na escola não é importante…

Também me lembro de uma namorada que reclamava sempre que por mais que ela se destacasse, apenas os meninos do clubinho recebiam promoção. E, por outro lado… julgava que não precisava dividir a conta do motel, mesmo sabendo que naquele momento eu estava mal financeiramente…

Hoje eu queria que as mulheres pudessem andar por onde quiserem, que possam beber e vestirem o que quiserem, que possam ser respeitadas por seus parentes, seus pares, pelas autoridades, pela sociedade como um todo. Que possam se sentir seguras na sua casa, no seu bairro, na sua faculdade, no seu trabalho, na sua cidade, no seu país, na sua cultura. Que possam ter seu mérito reconhecido no trabalho, e evoluir na sua carreira tanto quanto os demais. E que assumam a responsabilidades pelos seus gastos e seus atos, como os demais também… Por fim, que as flores façam parte do nosso dia-a-dia, assim como o respeito e a solidariedade, para todos os seres vivos, igualmente.

OBS1: texto escrito originalmente no Facebook, era só pra ser um recadinho…

OBS₂: eu também adoro ganhar flores e, só pra deixar registrado, as minhas prediletas são as hortênsias.