O mapa do ecossistema de dados As 32 áreas de dados, cruzadas com o que a linguagem tem: o que é nativo, o que atravessa a ponte, e o que não existe por decisão.
Este documento é o mapa , e não a lista. Cada área do ciclo de vida do dado — ingestão, limpeza, transformação, validação, armazenamento, análise, visualização, aprendizado, governança — cruzada com o que existe, medido pelos símbolos dos módulos e não pela memória de quem escreveu.
Três estados, e a diferença entre eles importa mais que a lista:
Estado Significa nativo está na linguagem ou na biblioteca padrão, sem dependência nenhuma ponte existe através de adopt Python.x — a biblioteca é do Python, o código é seu fora não existe, e a decisão está tomada: o motivo está escrito
O que se pede Onde está média, mediana, moda, variância, desvio nativo — Quadro.descrever, Arcane.Analyticsmínimo, máximo, amplitude, percentis, quartis nativo — descrever traz q1, mediana e q3assimetria, curtose nativo — Analytics.skewness, kurtosiscorrelação e covariância nativo — Quadro.correlacao, Analytics.covarianceoutliers nativo — Quadro.fora_da_curva (1,5 × IQR)amostragem, amostra estratificada nativo — Quadro.amostra, Analytics.stratified_sampleregressão, séries temporais nativo — Analytics.linear_regression, moving_average, seasonality, trendtestes de hipótese, p-value, intervalo de confiança ponte — adopt Python.scipy; implementar a família inteira de testes sem dependência seria meio caminho
É a área que o `Quadro` cobre por inteiro, e a razão de ele existir:
O que se pede O verbo DataFrame, Series, indexação Quadro, coluna, linha, q["col"], q[0], q[0:10]seleção de colunas e linhas, filtros, ordenação pegar, sem, onde, ordenaragrupamento e agregação, group_by agrupar + resumir, com 14 agregaçõesjoin, merge, concatjuntar (dentro/esquerda/direita/fora), empilharpivot tables pivotar, despivotar, tabela_cruzadatransformação de colunas, aplicar função com, mapeardados ausentes, duplicatas nulos, sem_nulos, preencher, distintas, duplicadasconversão de tipos converter, inferir_tiposnormalização, padronização, encoding normalizar, padronizar, codificar, discretizaroperações vetorizadas parcial — colunar por dentro; o laço ainda é do interpretador. Para vetorização de verdade, a ponte para o numpy
Extrair de Estado CSV, JSON, Excel, Parquet nativo — Quadro.de_csv, de_json, Arcane.Excel, Arcane.LagoSQLite nativo — Arcane.Database, 64 símbolosAPI REST, GraphQL nativo — Arcane.Http, Arcane.Malha, Arcane.Lavraarquivos locais, logs, streams nativo — Arcane.IO, Arcane.StreamXML, Avro, ORC fora — formatos de um ecossistema que a linguagem não fala; via ponte quando precisoPostgreSQL, MySQL, Oracle, MongoDB, Redis ponte — exigem driver de rede próprio, e a promessa aqui é zero dependênciaFTP, SFTP, Cloud Storage ponte — mesma razão
Do lado da transformação, tudo é nativo: limpeza, deduplicação, normalização, conversão de tipo, tratamento de nulo, enriquecimento por juntar, agregação, filtro, ordenação, validação e regra de negócio — ver ETL e qualidade .
A parte que mais importa num ETL não é a conexão
É a idempotência : rodar duas vezes tem de dar o mesmo resultado. upsert, insert_or_ignore e transação são nativos, e é deles que depende reprocessar um dia que falhou sem duplicar tudo.
O que se pede Onde está data pipelines, orquestração, DAG nativo — Arcane.Pipeline: etapa, ordem, retry, incremental, históricobatch e stream processing nativo — parallel, map_processos, Arcane.Streamvalidação e qualidade nativo — Arcane.Qualidadelinhagem, catálogo, observabilidade nativo — Arcane.Observar: origem, derivar, impacto, árvore, grafocontratos de dados, evolução de esquema parcial — Arcane.Lago.esquema e Arcane.Qualidade.conferir; o registro de esquema versionado não existeevent-driven pipelines nativo — Arcane.Eventos (em memória); a fila com persistência é o item aberto do roadmap
O que se pede Onde está SELECT, INSERT, UPDATE, DELETE, JOIN, índice nativo — `Arcane.Database` transação, savepoint, upsert, migração nativo busca textual, explain, estatística de tabela nativo — FTS5, DB.explain, DB.statsORM, modelos, relações nativo — Arcane.ForgeParquet, partições, camadas bronze/prata/ouro nativo — `Arcane.Lago` compactação, vácuo, promoção entre camadas nativo — Lago.compactar, vacuo, promovermodelagem dimensional, SCD, data marts padrão, não módulo — são formas de modelar, e a linguagem tem o que elas exigem (junção, upsert, versão por data)Snowflake, BigQuery, Redshift fora — são serviços; o caminho é a API deles por Arcane.Http
O que se pede Onde está processamento paralelo de verdade nativo — P.map_processos, medido 4,71× em 10 núcleosprocessamento por partes, streaming de arquivo nativo — stream action + emit, O(1) de espaçoparticionamento, poda de partição nativo — Arcane.Lago.particoesfilas, tópicos, offset, janelas nativo — Arcane.Stream: topico, publicar, consumir, offset, janela, confirmarSpark, Hadoop, Flink, Kafka fora — são sistemas distribuídos, não bibliotecas. O que a linguagem oferece é o modelo deles numa máquinadados maiores que a memória parcial — por partes, sim; o motor distribuído, não
O teto, dito com número
Uma VM de bytecode escrita em Python tem teto de ~6,5×. Para trabalho pesado de CPU a resposta é map_processos (processos de verdade) ou a ponte para o numpy, onde a conta acontece fora do interpretador. Isso está medido em complexidade em paralelo .
O que se pede Onde está gráfico de barras, linhas, dispersão, histograma nativo — Arcane.Analytics em ASCII, Arcane.Vitrine em SVGpainel interativo, filtros, abas, métricas nativo — Vitrine : 40 componentes, sete gráficos, ~4 KB de clientemapa de calor, sparkline, box plot nativo — Analytics.heatmap, sparkline, box_plotrelatório e exportação nativo — para_csv, para_json, Arcane.ExcelKPI, drill-down, self-service BI padrão — a Vitrine tem as peças; o produto é seuPower BI, Tableau, Looker fora — são produtos
O que se pede Onde está regressão linear e logística, árvore, floresta nativo — Arcane.Cortexk-médias, k-vizinhos, PCA, Bayes nativo — Cortex.kmedias, vizinhos, pca, bayes_textotreino, teste, validação cruzada, matriz de confusão nativo — dividir, validacao_cruzada, matrizescalonamento, categórico, importância de feição nativo — escalonar, categorico, importanciamédia móvel, defasagem, sazonalidade, tendência nativo — Analytics.moving_average, lag, seasonality, trendrede neural, aprendizado profundo, LLM ponte — adopt Python.torch. Uma rede neural sem BLAS é um brinquedo, e prometê-la seria mentir
O que se pede Onde está perfil de dados, tipos, distribuição, cardinalidade nativo — Quadro.perfil, Arcane.Qualidade.perfilcompletude, unicidade, validade, atualidade nativo — Qualidade.completude, unicidade, so_validas, atualidadeduplicatas, valores fora da faixa, formato nativo — duplicadas, fora_da_faixa, formatoslimpeza: nulo, tipo, texto, data nativo — preencher, converter, Arcane.Text, Arcane.Timelinhagem, impacto, catálogo nativo — Observar.origem, derivar, impacto, arvore, grafométricas, alerta, painel, Prometheus nativo — Observar.medir, alertar, painel, prometheuscontrato de dados, política, auditoria parcial — Qualidade.conferir e esperar dão o contrato; a política e a auditoria são processo, não bibliotecamascaramento, anonimização, LGPD parcial — Arcane.Crypto tem o hash e a cifra; a classificação de dado pessoal é decisão de quem modela
O que se pede Onde está teste unitário, de integração, de dados nativo — Crucible , com banco isolado por testeinstantâneo de saída grande nativo — expect … matches snapshotteste por propriedade nativo — Crucibleanálise de complexidade antes de rodar nativo — dataforge big-o, único entre linguagenslazy evaluation, processamento por partes nativo — stream action + emitcache, memoização nativo — Arcane.Functional.memoize, Vitrine.cachearmazenamento colunar nativo — o Quadro é colunar por dentro; o Parquet, no Lagopredicate pushdown, otimização de consulta parcial — o SQLite otimiza a consulta; o Quadro não reordena o pipeline
O esboço propunha um operador |> e blocos pipeline { }. A linguagem já tinha o >>, e o que faltava era o vocabulário — não um segundo operador:
dataforge copiar
dataforge copiar
resumo := vendas
>> onde valor bigger 50
>> agrupar produto
>> resumir { "valor" : "soma" }
>> ordenar valor desc Inventar |> ao lado de >> daria dois operadores para a mesma ideia — e a primeira pergunta de quem chega seria qual usar. Os seis verbos são contextuais , como as onze palavras do Kiln: valem depois de um >> e continuam livres como nome em todo o resto.
Proposto Onde está DataFrame`Arcane.Quadro` Data, StatisticsArcane.Analytics, Arcane.DataETL, ELT, PipelinesArcane.Pipeline + os verbos do quadroSQL, WarehouseArcane.Database, Arcane.ForgeLake, LakehouseArcane.LagoStreaming, BigDataArcane.Stream, Arcane.ConcurrentVisualization, BIArcane.Vitrine, Arcane.AnalyticsMachineLearning, AIArcane.Cortex + a ponteQuality, Governance, ObservabilityArcane.Qualidade, Arcane.ObservarTimeSeriesArcane.Analytics + Arcane.TimeCloudfora — serviços, alcançáveis por Arcane.Http
Vinte e um módulos propostos couberam em doze que já existiam mais um novo. Criar um módulo por tópico daria vinte e uma portas para o que é um assunto só — e a regra aqui é que a tabela de módulos não divirja da realidade.
Driver de banco em rede — PostgreSQL, MySQL, Oracle, MongoDB, Redis. Cada um é um protocolo de rede, e a promessa da linguagem é zero dependência no runtime.Motor distribuído — Spark, Flink, Hadoop. São sistemas, não bibliotecas; reimplementá-los em Python daria um subconjunto pior amarrado à linguagem.Aprendizado profundo — uma rede neural sem BLAS é um brinquedo. A ponte para o torch é honesta; uma implementação própria não seria.Conectores de nuvem — S3, GCS, Azure. São APIs HTTP, e Arcane.Http fala com elas; um cliente oficial de cada uma é manutenção sem fim.Avro e ORC — formatos de um ecossistema que a linguagem não fala. Parquet existe porque ele é a fronteira que um lago de dados realmente usa.Como este mapa não envelhece
As linhas marcadas nativo citam símbolos, e símbolo que sai da biblioteca quebra tests/test_estabilidade.py. As linhas fora citam o motivo, e não a falta — é o motivo que envelhece devagar.