小编Ant*_*ton的帖子

AWS DMS SQL Server 到 s3 parquet - 更改数据类型转换规则和“不支持 Parquet 类型:INT32 (UINT_8)”

我们使用 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)

amazon-s3 apache-spark aws-dms

6
推荐指数
1
解决办法
2978
查看次数

标签 统计

amazon-s3 ×1

apache-spark ×1

aws-dms ×1