Pular para o conteúdo principal

Validate Schema Compatibility

Valida se o schema de um dataset é compatível com o schema de uma tabela antes de vincular.

Endpoint​

POST /storage-explorer/tables/{tableId}/validate-compatibility/{datasetId}

Permissões Requeridas​

  • STORAGE_EXPLORER.READ

Path Parameters​

ParâmetroTipoDescrição
tableIdstringID da tabela
datasetIdstringID do dataset

Exemplo de Requisição​

curl -X POST "https://maestro.dadosfera.ai/storage-explorer/tables/tbl_a1b2c3d4e5f6/validate-compatibility/ds_x1y2z3" \
-H "Authorization: <JWT_TOKEN>"

Exemplo de Resposta​

Compatible (200 OK):

{
"compatible": true,
"table_id": "tbl_a1b2c3d4e5f6",
"dataset_id": "ds_x1y2z3",
"validation_details": {
"column_count_match": true,
"all_columns_present": true,
"type_compatibility": true,
"warnings": [
"Column 'total_amount' in dataset has more decimal places than table allows"
]
},
"column_mapping": [
{
"table_column": "order_id",
"dataset_column": "order_id",
"table_type": "VARCHAR(50)",
"dataset_type": "TEXT",
"compatible": true
},
{
"table_column": "customer_id",
"dataset_column": "customer_id",
"table_type": "VARCHAR(50)",
"dataset_type": "TEXT",
"compatible": true
},
{
"table_column": "order_date",
"dataset_column": "order_date",
"table_type": "TIMESTAMP",
"dataset_type": "TIMESTAMP",
"compatible": true
},
{
"table_column": "total_amount",
"dataset_column": "total_amount",
"table_type": "DECIMAL(10,2)",
"dataset_type": "DECIMAL(12,4)",
"compatible": true,
"warning": "Precision may be truncated"
}
]
}

Incompatible (200 OK):

{
"compatible": false,
"table_id": "tbl_a1b2c3d4e5f6",
"dataset_id": "ds_x1y2z3",
"validation_details": {
"column_count_match": false,
"all_columns_present": false,
"type_compatibility": false,
"errors": [
"Missing required column: customer_id",
"Type mismatch on column: order_date"
]
},
"missing_columns": ["customer_id"],
"extra_columns": ["client_id"],
"type_mismatches": [
{
"column": "order_date",
"table_type": "TIMESTAMP",
"dataset_type": "VARCHAR",
"compatible": false,
"reason": "Cannot convert VARCHAR to TIMESTAMP automatically"
}
]
}

Response Fields​

CampoTipoDescrição
compatiblebooleanSe o dataset é compatível com a tabela
validation_detailsobjectDetalhes da validação
column_mappingarrayMapeamento de colunas
missing_columnsarrayColunas faltantes no dataset
extra_columnsarrayColunas extras no dataset
type_mismatchesarrayIncompatibilidades de tipo

Códigos de Status​

CódigoDescrição
200Validação realizada (compatível ou não)
401Não autenticado
403Sem permissão STORAGE_EXPLORER.READ
404Tabela ou dataset não encontrado