转换数据时出错,参数类型无效:Redshift 中的 2

Posted

技术标签:

【中文标题】转换数据时出错,参数类型无效:Redshift 中的 2【英文标题】:Error converting data, invalid type for parameter: 2 in Redshift 【发布时间】:2016-11-25 09:20:33 【问题描述】:

我在将数据从 mysql 移动到 redshift 数据库时遇到以下错误。

源数据是:

id  emp_name    age city    update_date
a01 sarang      25  indore  2016/01/10 00:00:00.000
a02 shri        26  indore  2016/01/11 00:00:00.000
a03 chinu       27  indore  2016/01/12 00:00:00.000
a04 rohan       25  indore  2016/01/13 00:00:00.000
a05 manish      26  shajapur    2016/01/14 00:00:00.000

表定义为:

CREATE TABLE CDC (
  id varchar(50) NOT NULL,
  emp_name varchar(400) DEFAULT NULL,
  age int(10) DEFAULT NULL,
  city varchar(200) DEFAULT NULL,
  update_date date,
  PRIMARY KEY (id))

我看不到任何数据类型问题。

【问题讨论】:

找不到提到的错误。 错误是什么? 【参考方案1】:

你可以试试这个吗?

CREATE TABLE CDC (
  id varchar(50) NOT NULL,
  emp_name varchar(400) DEFAULT NULL,
  age integer DEFAULT NULL,
  city varchar(200) DEFAULT NULL,
  update_date date,
  PRIMARY KEY (id))

如文档 (Redshift Data Types) 中所述,声明整数的正确语法是 SMALLINT、INTEGER 或 BIGINT,具体取决于字段的值范围。

如果你想保持第二个精度,你不妨使用时间戳作为 update_date。

【讨论】:

我给的定义是source DB,是MySQL,不是redshift。 那么如何将数据从mysql转移到redshift呢? 我正在使用 Pentaho ETL。

以上是关于转换数据时出错,参数类型无效:Redshift 中的 2的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 中连接外部 redshift 数据库时出错

使用 spark(py)从 amazon redshift 读取数据时出错请求存储桶位置时必须指定存储桶名称参数

“解析列类型时出错”Redshift Spectrum

解析 JSON 时出错:输入中有多个文档(Redshift 到 Snowflake SQL)

从 MySQL 读取位数据类型并使用 AWS Glue 转换为 Redshift 的问题

将数据类型 nvarchar 转换为数值时出错