DatriseETL com IA

O que cada destino de ETL faz com seus campos semiestruturados

Fontes de CRM e SaaS entregam campos que não cabem em um schema fixo: propriedades personalizadas, objetos aninhados, arrays que crescem. Onde eles pousam muda bastante conforme o destino, e a resposta está espalhada pela documentação de 22 fornecedores.

Esta é a resposta em uma única tabela: o tipo nativo que cada destino usa para dados semiestruturados, o tipo de timestamp que ele espera, como a Datrise aplica as alterações e o comportamento que costuma surpreender. Os valores estão escritos exatamente como o fornecedor os nomeia, para baterem com o que você buscaria.

Mapeamento de tipos por destino

Bancos relacionais

DestinoCampos semiestruturados pousam comoTimestampsPadrão de carga
PostgreSQLjsonb columnstimestamptzupsert
MySQLJSON columnsDATETIME/TIMESTAMPupsert
Microsoft SQL ServerNVARCHAR(MAX) JSON columnsdatetime2upsert
Oracle DatabaseJSON or CLOB columnsTIMESTAMP WITH TIME ZONEupsert
Supabasejsonb columnstimestamptzupsert
Neonjsonb columnstimestamptzupsert
PlanetScaleJSON columnsDATETIMEupsert

Warehouses na nuvem

DestinoCampos semiestruturados pousam comoTimestampsPadrão de carga
SnowflakeVARIANT columnsTIMESTAMP_TZupsert
Google BigQueryJSON or nested/repeated (STRUCT) columnsTIMESTAMPupsert
Amazon RedshiftSUPER columnsTIMESTAMPTZupsert
Databricks SQL WarehouseVARIANT or STRUCT columnsTIMESTAMPupsert
Azure SynapseNVARCHAR(MAX) JSON columnsdatetime2upsert

Motores OLAP

DestinoCampos semiestruturados pousam comoTimestampsPadrão de carga
ClickHouseJSON or Map columnsDateTime64upsert
DuckDBJSON or STRUCT columnsTIMESTAMP WITH TIME ZONEsnapshot

Data lakes

DestinoCampos semiestruturados pousam comoTimestampsPadrão de carga
Amazon Athenastruct/map columns in Parquettimestampmerge de arquivos
Amazon S3 Data Lakenested struct/map fields in ParquetISO-8601 timestamp columnsmerge de arquivos
Azure Data Lake Storagenested struct/map fields in ParquetISO-8601 timestamp columnsmerge de arquivos

Bancos de documentos

DestinoCampos semiestruturados pousam comoTimestampsPadrão de carga
MongoDBnative nested documentsBSON Dateupsert
Amazon DynamoDBnested map/list attributesISO-8601 string or epoch number attributesupsert

Planilhas e arquivos

DestinoCampos semiestruturados pousam comoTimestampsPadrão de carga
PlanilhasJSON-stringified cells for nested fieldsISO-8601 text or serial date cellssnapshot
Airtablelong-text JSON or linked records for nested datadate/dateTime fieldsupsert
Arquivos CSVJSON-encoded strings for nested fieldsISO-8601 timestamp columnssnapshot

Como as alterações são aplicadas e o que surpreende

Uma entrada por destino: a mecânica incremental que a Datrise usa e depois o comportamento que vale conhecer antes de escolher.

PostgreSQL

Incremental: uma marca d'água sobre o updated-at de cada entidade, aplicada com INSERT … ON CONFLICT DO UPDATE

Vale saber: O PostgreSQL converte identificadores sem aspas para minúsculas, então a Datrise normaliza para snake_case os campos de origem com maiúsculas misturadas

Gerador de upsert: INSERT … ON CONFLICT DO UPDATE

MySQL

Incremental: uma marca d'água sobre updated-at, aplicada com INSERT … ON DUPLICATE KEY UPDATE

Vale saber: A collation do MySQL importa para textos de CRM, então a Datrise grava em utf8mb4 para preservar emojis e caracteres não latinos

Gerador de upsert: INSERT … ON DUPLICATE KEY UPDATE

Microsoft SQL Server

Incremental: uma marca d'água sobre updated-at, aplicada com uma instrução MERGE

Vale saber: O SQL Server usa por padrão uma collation que ignora maiúsculas, então a Datrise preserva a grafia original em uma coluna de metadados para evitar colisões silenciosas de chaves

Gerador de upsert: MERGE … WITH (HOLDLOCK)

Oracle Database

Incremental: uma marca d'água sobre updated-at, aplicada com MERGE INTO

Vale saber: O Oracle trata string vazia como NULL, então a Datrise distingue valores de origem em branco dos ausentes durante a carga

Gerador de upsert: MERGE INTO … USING

Supabase

Incremental: uma marca d'água sobre updated-at, aplicada com INSERT … ON CONFLICT DO UPDATE

Vale saber: A Datrise grava em um schema dedicado e deixa a row-level security com você, para que as tabelas sincronizadas não herdem acesso público por acidente

Gerador de upsert: INSERT … ON CONFLICT DO UPDATE

Neon

Incremental: uma marca d'água sobre updated-at, aplicada com INSERT … ON CONFLICT DO UPDATE

Vale saber: O Neon separa computação e armazenamento, então a Datrise agrupa as gravações para que a computação com autoescala não faça cold start a cada pequena alteração

Gerador de upsert: INSERT … ON CONFLICT DO UPDATE

PlanetScale

Incremental: uma marca d'água sobre updated-at, aplicada com INSERT … ON DUPLICATE KEY UPDATE

Vale saber: O PlanetScale não permite chaves estrangeiras por padrão, então a Datrise modela os relacionamentos com colunas de id estáveis em vez de FKs impostas

Gerador de upsert: INSERT … ON DUPLICATE KEY UPDATE

Snowflake

Incremental: cargas em staging mescladas por id estável com MERGE, de modo que os créditos escalam com o volume de alterações, não com o tamanho da tabela

Vale saber: O Snowflake converte identificadores sem aspas para maiúsculas, então a Datrise padroniza nomes em minúsculas entre aspas para que as referências de coluna permaneçam estáveis

Gerador de upsert: MERGE INTO … QUALIFY-deduped USING

Google BigQuery

Incremental: acrescenta a uma tabela de staging e depois faz MERGE por id estável na tabela particionada de destino

Vale saber: O BigQuery cobra por bytes escaneados, então a Datrise particiona e clusteriza cada tabela para manter o custo das consultas previsível

Gerador de upsert: MERGE with partition-pruned target

Amazon Redshift

Incremental: COPY a partir de arquivos em staging e depois um merge de deletar-e-inserir por id estável

Vale saber: O desempenho do Redshift depende das dist/sort keys, então a Datrise as escolhe a partir dos ids das suas entidades e das marcações de sincronização em vez de deixar a distribuição EVEN padrão

Gerador de upsert: DELETE … USING + INSERT (staging pattern)

Databricks SQL Warehouse

Incremental: um MERGE do Delta por id estável, com histórico de alterações disponível via time travel

Vale saber: A Datrise grava tabelas Delta governadas pelo Unity Catalog, então linhagem e permissões são geridas de forma central e não por notebook

Gerador de upsert: Delta Lake MERGE INTO

Azure Synapse

Incremental: COPY para staging e depois um MERGE por id estável

Vale saber: Os pools dedicados do Synapse recompensam uma boa distribuição hash, então a Datrise distribui por ids de entidade para evitar joins com muita movimentação de dados

Gerador de upsert: MERGE (dedicated SQL pool)

ClickHouse

Incremental: insere em um ReplacingMergeTree com chave de id estável, de modo que a última versão vence no merge

Vale saber: O ClickHouse deduplica de forma assíncrona no merge, então a Datrise usa ReplacingMergeTree e consultas seguras com FINAL em vez de assumir upserts imediatos

Gerador de upsert: INSERT into ReplacingMergeTree + FINAL

DuckDB

Incremental: reescreve as entidades alteradas no banco local (ou em Parquet) a cada execução

Vale saber: O DuckDB é embarcado e de escritor único, então a Datrise produz um snapshot de arquivo consistente em vez de gravações concorrentes em streaming

Gerador de upsert: INSERT OR REPLACE / ON CONFLICT DO UPDATE

Amazon Athena

Incremental: grava novas partições Parquet e as registra no Glue Data Catalog

Vale saber: O Athena cobra por byte escaneado e arquivos pequenos penalizam, então a Datrise compacta em Parquet de tamanho adequado em vez de muitos objetos minúsculos

Gerador de upsert: MERGE INTO (Iceberg table, engine v3)

Amazon S3 Data Lake

Incremental: grava novas partições por data e compacta arquivos pequenos de forma agendada

Vale saber: Um lake não impõe schema, então a Datrise grava um manifesto de schema junto aos dados para manter os motores downstream consistentes

Gerador de upsert: append partition + latest-version view

Azure Data Lake Storage

Incremental: grava novas partições por data no container e compacta de forma agendada

Vale saber: O namespace hierárquico do ADLS faz a estrutura de pastas importar, então a Datrise mantém um caminho entidade/data previsível que seus motores do Azure montam diretamente

Gerador de upsert: append partition + latest-version view

MongoDB

Incremental: upserts por id estável com updateOne(upsert) sobre a chave primária de origem

Vale saber: O Mongo não tem schema fixo, então a Datrise mantém tipos de campo consistentes entre documentos para evitar surpresas de tipos mistos nas consultas

Gerador de upsert: bulkWrite updateOne { upsert: true }

Amazon DynamoDB

Incremental: PutItem/UpdateItem com uma chave de partição derivada do id da entidade

Vale saber: O DynamoDB recompensa projetar as chaves conforme os padrões de acesso, então a Datrise define partition/sort keys a partir dos ids das suas entidades em vez de padrões que forçam varreduras

Gerador de upsert: PutItem with ConditionExpression

Planilhas

Incremental: atualiza as linhas da aba a cada execução, preservando a ordem dos cabeçalhos

Vale saber: O Sheets tem teto na casa dos poucos milhões de células, então a Datrise grava um conjunto de colunas curado em vez de todos os campos brutos

Airtable

Incremental: upserts de registros pareados por um campo de id estável

Vale saber: O Airtable impõe limites de registros por base e de taxa de API, então a Datrise agrupa as gravações e grava um conjunto de campos enxuto

Gerador de upsert: PATCH /records with performUpsert

Arquivos CSV

Incremental: grava um CSV novo e totalmente tipado por entidade a cada execução

Vale saber: CSV não tem tipos, então a Datrise emite um schema acompanhante e faz aspas e escapes de forma consistente para que os carregadores downstream não interpretem mal vírgulas e quebras de linha

Por que ferramentas de BI não estão nesta tabela

A Datrise também entrega para 21 ferramentas de BI, e todas chegam à mesma resposta: campos aninhados pousam achatados em colunas que a camada de modelagem consegue plotar. Isso é um fato, não 21 — listá-las aqui engordaria a página sem informar ninguém. Ferramentas de BI leem de um armazenamento que está na tabela acima; escolha o armazenamento primeiro.

Acesso antecipado

Leve o pipeline, não só a tabela

Esta página diz o que cada destino faz com seus dados. A Datrise faz isso por você: entidades modeladas, sincronização incremental, tabelas tipadas e nenhum script para vigiar. Entre na lista de espera e avisamos quando seu par de origem e destino estiver pronto.

Explorar o catálogo de integrações

Veja os limites e cursores do lado da fonte