Validar compatibilidade de schema entre tabela e dataset
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âmetro | Tipo | Descrição |
|---|---|---|
tableId | string | ID da tabela |
datasetId | string | ID 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
| Campo | Tipo | Descrição |
|---|---|---|
compatible | boolean | Se o dataset é compatível com a tabela |
validation_details | object | Detalhes da validação |
column_mapping | array | Mapeamento de colunas |
missing_columns | array | Colunas faltantes no dataset |
extra_columns | array | Colunas extras no dataset |
type_mismatches | array | Incompatibilidades de tipo |
Códigos de Status
| Código | Descrição |
|---|---|
200 | Validação realizada (compatível ou não) |
401 | Não autenticado |
403 | Sem permissão STORAGE_EXPLORER.READ |
404 | Tabela ou dataset não encontrado |
