Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用'通过RowVersion更新记录;SQL WHERE';筛选最大值的步骤_Amazon Web Services_Amazon S3_Etl_Snowflake Cloud Data Platform - Fatal编程技术网

Amazon web services 使用'通过RowVersion更新记录;SQL WHERE';筛选最大值的步骤

Amazon web services 使用'通过RowVersion更新记录;SQL WHERE';筛选最大值的步骤,amazon-web-services,amazon-s3,etl,snowflake-cloud-data-platform,Amazon Web Services,Amazon S3,Etl,Snowflake Cloud Data Platform,尝试基于现有表中的RowVersion值更新表。我的数据湖每周更新一次,新数据存储为.json文件,其中包含任何新版本 我需要: 1) 查询我的数据仓库中的现有表以查找最新的RowVersion(ie max) 2) 使用该值仅筛选/选择我的数据仓库中大于我刚才标识的版本的记录 3) 更新我的表以包含新行 我的问题是-下面的SQL,我不确定如何选择当前表中的最大行数,然后使用该行数筛选/指定查询S3 Bucket时要返回的内容: create or replace temporary table

尝试基于现有表中的RowVersion值更新表。我的数据湖每周更新一次,新数据存储为.json文件,其中包含任何新版本

我需要:

1) 查询我的数据仓库中的现有表以查找最新的RowVersion(ie max)

2) 使用该值仅筛选/选择我的数据仓库中大于我刚才标识的版本的记录

3) 更新我的表以包含新行

我的问题是-下面的SQL,我不确定如何选择当前表中的最大行数,然后使用该行数筛选/指定查询S3 Bucket时要返回的内容:

create or replace temporary table UPDATE_CAR_SALES AS
SELECT 
VALUE:CAR::string AS CARS,
VALUE:RowVersion::INT AS ROW_VERSION
having row_version > max(row_version)
from '@s3_bucket',
 lateral flatten( input => $1:value);

我不清楚你是如何存储数据的。汽车专栏是独一无二的吗?您需要为每辆车或所有车/行查找最大行版本吗?无论如何,您可以使用子查询筛选行版本高于最大值的行:

create or replace temporary table UPDATE_CAR_SALES AS 
SELECT 
VALUE:CAR::string AS CARS,
VALUE:RowVersion::INT AS ROW_VERSION
FROM @s3_bucket, lateral flatten( input => $1 )
where ROW_VERSION > (SELECT MAX(RowVersion) 
from MAIN_TABLE);
如果需要根据(现有表的)每辆车的行版本筛选行:

我需要将主查询放在括号中才能使用alias。希望能有帮助

create or replace temporary table UPDATE_CAR_SALES AS 
SELECT * FROM (SELECT
VALUE:CAR::string AS CARS,
VALUE:RowVersion::INT AS ROW_VERSION
FROM @s3_bucket, lateral flatten( input => $1 )) temp_table
where temp_table.ROW_VERSION > (SELECT MAX(RowVersion) 
from MAIN_TABLE where cars = temp_table.CARS );