Snowflake 中 Parquet returns NULL 的外部暂存数据
External staging data of parquet returns NULL in Snowflake
各位,我在 S3
上有一个存储镶木地板文件的外部舞台。
现在,我创建了一个 table 作为 T1_D1
:
CREATE TABLE T1_D1(ID NUMBER(38,0),
TRANSACTION_DATE TIMESTAMP_NTZ(9),
PRODUCT VARCHAR(16777216))
现在,我运行正在编写以下脚本,以测试我正在加载的数据是否正确。
select
:ID::number,
:PRODUCT::VARCHAR(16777216)
from @my_s3/T1/day_2_sales.parquet
(file_format => my_parq)
它成功 returns ID
个数字,而产品在所有行中返回为 NULL
。
我什至尝试 运行 使用交易日期列,但同样的问题仍然存在。 (即)ID
匹配并且 returns 数据正确但时间戳值让我 NULL
.
:ID::NUMBER, :TRANSACTION_DATE::TIMESTAMP_NTZ(9) 1, 2, 3, 6, 7, 8, 9, 6, 7, 8, 9, 10, 11,
作为附加步骤,我在源镶木地板文件上使用了 AWS 爬虫,它为我提供了以下 table 的架构,如下所示。
1 id : bigint 2 transaction_date : string 3 product : string
我试验过的东西如下。
- 首先,我尝试使用单独的列进行测试,即尝试使用以下查询打印 ID 和 PRODUCT 列。
select :ID::number, :PRODUCT::VARCHAR(16777216) from @my_s3/T1/day_2_sales.parquet (file_format => my_parq)
It returned ID's correctly but the product values are null.
所以我使用了 AWS 爬虫来查找源模式的数据类型,并相应地编写了雪花查询。通过更改雪花中的数据类型。但它仍然是 returns NULL。
然后我发现,源拼花文件中列的命名约定不合适。即目标列 "ID" 在源系统中被命名为 "ID" 本身,但在 "PRODUCT" 中。 =39=] 在源 parquet 文件中被命名为 "Product"。 TRANSACTION_DATE 被命名为 Transaction_Date.
以下查询成功。
select :ID::number, :Transaction_date::timestamp, :Product::varchar from @my_s3/T1/day_1_sales.parquet (file_format => my_parq)
各位,我在 S3
上有一个存储镶木地板文件的外部舞台。
现在,我创建了一个 table 作为 T1_D1
:
CREATE TABLE T1_D1(ID NUMBER(38,0),
TRANSACTION_DATE TIMESTAMP_NTZ(9),
PRODUCT VARCHAR(16777216))
现在,我运行正在编写以下脚本,以测试我正在加载的数据是否正确。
select
:ID::number,
:PRODUCT::VARCHAR(16777216)
from @my_s3/T1/day_2_sales.parquet
(file_format => my_parq)
它成功 returns ID
个数字,而产品在所有行中返回为 NULL
。
我什至尝试 运行 使用交易日期列,但同样的问题仍然存在。 (即)ID
匹配并且 returns 数据正确但时间戳值让我 NULL
.
:ID::NUMBER, :TRANSACTION_DATE::TIMESTAMP_NTZ(9) 1, 2, 3, 6, 7, 8, 9, 6, 7, 8, 9, 10, 11,
作为附加步骤,我在源镶木地板文件上使用了 AWS 爬虫,它为我提供了以下 table 的架构,如下所示。
1 id : bigint 2 transaction_date : string 3 product : string
我试验过的东西如下。
- 首先,我尝试使用单独的列进行测试,即尝试使用以下查询打印 ID 和 PRODUCT 列。
select :ID::number, :PRODUCT::VARCHAR(16777216) from @my_s3/T1/day_2_sales.parquet (file_format => my_parq)
It returned ID's correctly but the product values are null.
所以我使用了 AWS 爬虫来查找源模式的数据类型,并相应地编写了雪花查询。通过更改雪花中的数据类型。但它仍然是 returns NULL。
然后我发现,源拼花文件中列的命名约定不合适。即目标列 "ID" 在源系统中被命名为 "ID" 本身,但在 "PRODUCT" 中。 =39=] 在源 parquet 文件中被命名为 "Product"。 TRANSACTION_DATE 被命名为 Transaction_Date.
以下查询成功。
select :ID::number, :Transaction_date::timestamp, :Product::varchar from @my_s3/T1/day_1_sales.parquet (file_format => my_parq)