Pular para o conteúdo principal

Compatibilidade de runtime.

ContractForge reconhece o runtime, mas acesso a storage, dependências de connector e recursos do Unity Catalog ainda dependem de onde o código executa.

Matriz de runtime

CapacidadeClassic clusterServerless/Spark ConnectSpark local
Escritas batch DeltaSuportadoSuportadoCompatível com dependências Delta
APIs Python DeltaTableGeralmente suportadoLimitadoDepende de dependências
Mesclagem SQLSuportadoSuportadoCompatível com Delta
Auto LoaderApenas DatabricksApenas DatabricksNão disponível
Unity Catalog annotationsDepende das permissõesDepende das permissõesNão disponível
Credenciais diretas de object storagePadrão comumPrefira External Location ou VolumeDependente do ambiente
Fontes federadasSuportado quando existe conexão UCRecomendado para sistemas externos governadosNão disponível
JDBCRequer driver/redeRequer suporte de driver/redeRequer driver/rede

Modelo de dependência do conector

Formatos Spark integrados

CSV, JSON, Parquet, Delta, ORC e ​​texto geralmente funcionam quando o Spark os suporta.

Pacotes Spark extras

XML, Avro e drivers JDBC devem estar disponíveis no tempo de execução que executa o leitura. Snowflake, BigQuery, MongoDB e sistemas similares são padrões de fonte externalizada; use conectores da plataforma/fornecedor, federation ou pacotes customizados, e passe o resultado landed ao ContractForge.

Cloud object storage

Serverless deve usar External Locations ou Volumes; classic clusters podem usar credenciais Spark/Hadoop quando a política permitir.

HTTP do lado do driver

REST e HTTP file dependem de egress do driver, DNS, regras de proxy e limites de API. Microsoft Graph, SharePoint Server, SFTP e fontes similares são externalizadas, a menos que sejam implementadas por um resolver customizado do projeto.

Extra local do Spark

contractforge[spark] atualmente mira pyspark>=3.4,<4 com delta-spark>=3.0,<4. Spark 4 e Delta 4 não são habilitados pelos metadados do pacote até que testes locais de write mode, schema, qualidade, shape, watermark e control tables sejam validados juntos.

Política de pacotes Spark e Delta

AmbienteStatusProprietário da dependênciaDecisão
Databricks classic clustersSuportadoTempo de execução DatabricksUse a stack Spark e Delta fornecida pelo runtime.
Databricks serverless/Spark ConnectCompatível com limites de runtimeDatabricks RuntimePrefira storage governado, operações SQL-compatible e alternativas documentadas.
PySpark 3.x local + Delta 3.xSuportado para desenvolvimento e testescontractforge[spark]Extra local validado atual.
PySpark 4.x local + Delta 4.xAinda não ativadoExperiência gerenciada pelo usuárioRequer validação explícita antes que os intervalos de dependência sejam ampliados.

Não instale contractforge[spark] em Databricks jobs, a menos que esteja criando intencionalmente um ambiente de teste isolado. Instale o wheel ContractForge e deixe o Databricks Runtime fornecer Spark e Delta.

Padrões de connector em serverless

Use serverless para ingestão governada e repetível quando o caminho de acesso é configurado pela plataforma. Use classic clusters quando precisar controlar diretamente bibliotecas de baixo nível, opções JVM ou credenciais de filesystem.

SourcePadrão serverless preferidoQuando usar classic
S3/Azure Blob/ADLSUnity Catalog External Location ou Volume; ContractForge lê o path governado.Credenciais S3A/ABFS/SAS diretas, bibliotecas Hadoop customizadas ou provedores de credenciais não padrão.
SaaS/arquivos/streams especializadosUse conectores nativos do Databricks, Lakeflow Connect, Lakehouse Federation, marketplace/vendor tools ou pacotes customizados; ContractForge lê o resultado landed/federado.Bibliotecas diretas, networking customizado ou dependências específicas de fornecedor que o caminho de plataforma não cobre.
JDBC/RDS IAMSuportado quando driver, rota, SSL e credenciais IAM estão disponíveis para o runtime.Bancos privados que exigem customização em nível VPC/VNet, instalação de driver ou ajuste de extract de longa duração.
REST/HTTP fileHTTP do lado do driver com timeouts explícitos, retries e limites de tamanho/página.Payloads grandes que devem primeiro ser landed em object storage ou rotas de API que exigem proxies customizados.

Modelo de falha em serverless

Falhas em serverless geralmente acontecem antes que o provedor externo avalie a credencial. Trate acessibilidade do runtime, autenticação do provedor e sintaxe do contrato como camadas separadas.

SintomaCamada provávelPróxima verificação
O segredo é resolvido, mas o acesso é negado pelo provedor.Autenticação ou autorização do provedor.Valide permissões de aplicativos, política de rede Snowflake, concessões IAM, concessões de banco de dados ou permissões de site Graph.
DNS, timeout de conexão, porta bloqueada ou endpoint indisponível.Política ou roteamento de rede do workspace.Valide conectividade serverless, PrivateLink/NCC, firewall allowlists, requisitos de proxy ou use uma conexão governada.
Spark rejeita configuração de credenciais Hadoop.Política Spark Connect/runtime.Use Unity Catalog External Location ou Volume em vez de configuração de filesystem em nível de notebook.
A classe do connector ou o driver JDBC está ausente.Dependência de runtime.Instale o pacote em classic/job clusters, use um caminho de biblioteca serverless compatível ou use federation.
HTTP 403 ou resposta malformada é retornada por um conector de driver.Resposta de origem determinística.Corrija credenciais, solicite URL, permissões ou análise de resposta. ContractForge não tenta novamente falhas determinísticas.

Regra de compatibilidade

Se um recurso depender da plataforma, documente isso na página do connector e exponha um erro claro. Não faça fallback silencioso para um comportamento mais fraco que possa ocultar configuração incorreta de runtime.