SQL Pipe: sincronização de dados em ferramentas abertas
Cal Mitchell (SQL Pipe) sobre movimento de dados open desde 2021: o problema de sync e a aposta em ferramentas abertas de data movement.
Resposta direta
Movimentar dados entre sistemas pede ferramentas claras; a aposta open de SQL Pipe mira sync sem caixa-preta cara demais. Seu database com Stripe e esta é a prática melhor recomendada por Stripe a primeira coisa que eu vejo é que há seis diferentes sistemas aqui há dois que a maioria de algumas funções de lambda da amazon que vão precisar de.
Quem é o convidado e o problema que ataca
E estou aqui hoje para mostrar para vocês sobre a minha nova ferramenta, que eu chamo de Remix, que é uma aplicação de streaming de dados dirigido a eventos, que eu desenhei para aumentar uma medida que eu chamo de velocidade de dados. Este ferramenta será muito útil para clientes de Stripe que querem sincronizar dados entre seu database Stripe e seu database interno. Um dos meus livros de sci-fi favoritos É bem famoso e tem um dos meus conceitos favoritos na ficção, que é que, ao chegar mais longe do core galáctico, mensagens transmitem mais rápido, até que, eventualmente, no além e no transcende, você possa enviar mensagens, dados, mais rápido do que a velocidade da luz.
As físicas lá são similares ao que sabemos, mas ao sair para o além, e o transcend, há seres divinos e civilizações que podem fazer coisas inimagináveis porque seus computadores funcionam mais rápido, os neurônios em seus cérebros atingem mais rápido. No entanto, quando você vai para as profundidades inimagináveis, os computadores nem funcionam em si mesmos, você pensa em um fuzz e, honestamente, a vida inteligente tenta sobreviver. Mas, você sabe, eles podem ter um trabalho de cronograma que atualiza tudo, então você pode geralmente conseguir o que você precisa em menos de um dia, mas, você sabe, não é instantâneo.
Por que data movement open importa
Eles sabem onde estão os clientes, eles sabem onde estão os dirigentes, eles sabem o que o tráfego deve ser. Amazon, eles sabem onde estão todos os clientes, eles sabem onde estão todos os produtos, etc. E o meu resultado é que, mesmo se sua organização tem um modelo de negócio familiar, se você melhorar a velocidade de dados, você pode realmente ter.
Resultados incríveis e remix é uma ferramenta que oferece um framework conceitual e capacidades de movimento de dados para ajudar você a aumentar a velocidade de dados da sua organização, então espero que eu tenha convencido você que a velocidade de dados é importante e aumentá-la é bom o problema é que é realmente muito difícil e para demonstrar isso vou e vou passar por você os remixes do primeiro caso de uso apoiado, que é o Sinking. Seu database com Stripe e esta é a prática melhor recomendada por Stripe a primeira coisa que eu vejo é que há seis diferentes sistemas aqui há dois que a maioria de algumas funções de lambda da amazon que vão precisar de código custom para manter etc um reto de event bridge sas event bus então, logo de fora, você tem muitos sistemas e isso cria complexidade tecnológica Depois você tem que lidar com problemas de sinca de dados típicos, como a lógica de deduplicação. Então, aqui é o que acontece quando você cria um produto no seu dashboard Stripe e você o dá um preço, o que você tem que fazer.
Na prática
Movimentar dados entre sistemas pede ferramentas claras; a aposta open de SQL Pipe mira sync sem caixa-preta cara demais.
Analogias (e o que elas esclarecem)
E isso precisa ser feito, porque muitos clientes de Stripe vendem produtos em diferentes países e em diferentes criptomoedas, então você precisa ter produtos diferentes, desculpe, você precisa ter preços diferentes para cada produto. No entanto, uma situação muito comum é que você tem uma tabela de database onde você só tem um preço, então você precisa de alguma forma descobrir como sincronizar isso. Bem, essas duas coisas são essencialmente chaves estrangeiras para um outro, e isso vai se ligar à ID de Stripe.
Eu acho que, na verdade, a coisa mais difícil, especialmente em um ambiente de empresa, é mais o processo e o mudamento de negócio, em vez da tecnologia. Então não há problemas de licençamento, claro, não há problemas de custos, e é um produto de forma gratuita, então você só precisa de uma ferramenta em vez de seis. Agora, a próxima coisa que faz com que seja mais fácil aumentar a velocidade do seu dados é que ele te força a criar modelos de dados canônicos.
Onde sync costuma falhar em produção
Então você pode dizer, quando eu tenho um objeto na minha linguagem de programação que é um produto, ele deve ter estes campos que são nomeados isto e eles devem ter estes tipos. E que forçam você a definir esses modelos de dados canônicos, o que é bom, porque então você pode se basear no fato que este objeto vai ter estes campos e estes tipos de dados, etc. Um benefício de criar esses modelos é que você, por natureza, tem um set de dados muito limpos, o que é muito benefício para criar um set de dados de treinamento de AI.
O schema JSON é o mais popular, o mais popular e suportado para criar um modelo de dados canônico, ou pelo menos para validar que algo se encaixa em uma certa forma. E a visão de um produto de nossos negócios é que ele deve ter uma ID, ele deve ter uma ID de estripe, um nome e um preço. Você pode ter um banco de dados de 1998, eu os vi, e não há jeito que essas pessoas tenham a consciência de chamar o preço do produto de quantidade de unidades, porque a Stripe chama isso em 20 anos no futuro.
Como avaliar uma tool de movimento de dados
Para mudanças de dados, captura de dados de databases, que é como as databases reportam mudanças de dados para nós em tempo real, e webhooks de Stripe. Quando esses objetos são validados, quando eu sei que este é um objeto de produto válido, e depois coloca-o em uma queue, e então, de acordo com um limite de preço, ele tira objetos da queue e então os remonta aos outros sistemas. Então, por exemplo, ele precisa gerar um declaração de atualização para Postgres ou para gerar um call de API para Stripe.
Então, a coisa chave é que remixa os dados no caminho para se encaixar em um modelo de dados canônico e então remixa-os no caminho para fora. Este é o slide mais importante e também o mais difícil de entender no entire deck, mas é isso que o Remix faz quando recebe dados. Na esquerda, você pode ver os dois objetos que Stripe envia para nós se criarmos um produto na UI Web.
Sinais de que está funcionando
Ele cria um objeto de preço de Stripe e um objeto de produto de Stripe. Nós precisamos tirar o ID do objeto de produto Stripe e o campo de produto do StripePrice, que são a mesma coisa. E nós precisamos coercer isso ou marxar isso em ID Stripe, porque é o que nós chamamos em nosso negócio.
Então, o que eu vou demonstrar, eu vou criar um database de Postgres localmente e eu vou sincronizar dados usando Remix para o meu account Stripe. E primeiro, eu só preciso fazer um par de comandos do Docker para conseguir um database que está funcionando no meu laptop. Você pode ver que temos ID, ID de estrape, nome do produto, que você pode ser forte o suficiente para perceber que não estamos nomeando o nome, é o nome do produto.
O que evitar na primeira semana
Então, agora, a chave aqui, eu estou apenas tentando mostrar para vocês, eu estou selecionando a estrela de produtos, e nós não temos nada. E então, se eu abrir Safari, porque eu sou um fã do Apple, e eu refiro a usar Chrome, nós podemos ir para o meu catálogo de produtos. E vamos criar um produto, chamaremos de Stripe Dublin Ticket porque o encontro é tão sucesso que eles têm que começar a pagar por ele vamos fazer cinco dólares é um produto muito confuso ninguém aqui tem dólares e aí você vai em nosso contato Stripe, agora temos um ticket de Stripe Dublin E se voltarmos ao nosso database e selecionar, ele replicou lá.
Volte para o database e se eu queriar novamente, às vezes leva um segundo, aí você vai, o preço mudou para 200 e o sync também pode acontecer na outra direção se quisermos atualizar o nome do produto para o nome do novo produto, podemos atualizar em nosso database e isso deve replicar de volta para nosso acount de Stripe, então aí você vai, de fato, faz o trabalho Remix é um produto totalmente novo e o syncing Postgres e Stripe é o primeiro caso de uso, mas é apenas o começo. O que eu imagino são muitos sistemas de dados diferentes que podem trazer e transformar dados em esses modelos de dados canônicos e depois enviá-los de volta em tempo real. Então, se agora você quer sincronizar dados para sua conta Stripe, mas você usa o server SQL ou MySQL em vez de Postgres, isso é totalmente algo que eu gostaria de ouvir.
Na prática
Próximo passo para «sql-pipe-sincronizacao-dados-aberta»: rode um experimento de 7 dias com uma métrica ligada a sql pipe sincronizacao dados aberta antes de escalar o padrão.