2

我们正在尝试将数据从外部源(mssql)提取到 postgres。但是,当我检查 invoicedate 列条目时,mssql 同时显示这些条目的 invoicedate 值。

即我们在两个 DBMS 上都尝试了以下查询:

在 SQL Server 中执行查询时:

select * from tablename where salesorder='168490'

获得发票日期列所在的 12 行'2015-10-26 00:00:00.000'

但是在 Postgres 上执行相同的查询

select "InvoceDt" from tablename where salesorder='168490'

获取列 invoicedate 为空的 12 行。

问题是为什么?PostgresInvoiceDt列将变为空,而不是我们可以看到 SQL Server 正在显示适当的数据值。

为什么这个特定列的 SQL Server 和 Postgres 之间的数据不同?

4

1 回答 1

2

Vicps,你没有使用 Postgres,这就是为什么 a_horse_with_no_name 很难理解你的问题。您正在使用 Pivotal HDB(正式名称为 HAWQ)。HAWQ 现在与孵化器项目“Apache HAWQ”相关联,商业版本是“Pivotal HDB”。

Pivotal HDB 是 Pivotal Greenplum 数据库的一个分支,它是 PostgreSQL 8.2 的一个分支。它与 Postgres 有很多相似之处,但绝对不是 Postgres。

您还使用 Spring-XD 将数据从 SQL Server 移动到 HDFS,这对于理解真正的问题是至关重要的。

你提供了这个例子:

CREATE TABLE tablename ( "InvoiceDt" timestamp ) 
LOCATION ('pxf://hostname/path/to/hdfs/?profile=HdfsTextSimple') 
FORMAT 'csv' ( delimiter '^' null 'null' quote '~');

您的文件中只有一列?这怎么可能?上面,您提到了 salesorder 列。其次,您是否尝试过查看 Spring-XD 编写的文件?

hdfs dfs -cat hdfs://hostname:8020/path/to/hdfs | grep 168490

我敢打赌,导致问题的数据中有额外的分隔符、空字符或转义字符。您也可能想用 spring-xd 标记您的问题。

于 2015-11-02T16:55:48.657 回答