我们使用 AWS DMS 将 SQL Server 数据库作为 parquet 文件转储到 S3 中。想法是使用 Spark 来运行一些分析。完全加载完成后,无法读取镶木地板,因为它们UINT在架构中具有字段。Spark 拒绝使用 来读取它们Parquet type not supported: INT32 (UINT_8)。我们使用转换规则来覆盖列的数据类型UINT。但看起来它们没有被 DMS 引擎拾取。为什么?
有许多规则,例如“将单位转换为 int”,请参见下文(注意 UINT1 是 1 字节无符号DMS 数据类型):
{
"rule-type": "transformation",
"rule-id": "7",
"rule-name": "uintToInt",
"rule-action": "change-data-type",
"rule-target": "column",
"object-locator": {
"schema-name": "%",
"table-name": "%",
"column-name": "%",
"data-type": "uint1"
},
"data-type": {
"type": "int4"
}
}
Run Code Online (Sandbox Code Playgroud)
S3DataFormat=parquet;ParquetVersion=parquet_2_0和 DMS 引擎版本是3.3.2
但是仍然使用 uint 获取镶木地板模式。见下文:
id: int32
name: string
value: string …Run Code Online (Sandbox Code Playgroud)