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
Amazon web services S3数据池中数据的增量更新_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services S3数据池中数据的增量更新

Amazon web services S3数据池中数据的增量更新,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我是AWS新手,来自数据仓库ETL背景。我们目前正在使用AWS服务数据湖迁移到云,并尝试使用sqoop作业将数据从外部源RDBMS系统加载到Amazon s3登录层(Bucket),然后使用Informatica BDM加载到Amazon s3中的不同层(Bucket) 每天从外部源系统获取数据的频率。我不确定如何在S3中实现增量加载/SCD类型。在AmazonS3 bucket中创建对象后,是否有可能更改该对象,或者我们是否必须继续在S3 bucket中创建每日负载的副本作为对象 我知道Ama

我是AWS新手,来自数据仓库ETL背景。我们目前正在使用AWS服务数据湖迁移到云,并尝试使用sqoop作业将数据从外部源RDBMS系统加载到Amazon s3登录层(Bucket),然后使用Informatica BDM加载到Amazon s3中的不同层(Bucket)

每天从外部源系统获取数据的频率。我不确定如何在S3中实现增量加载/SCD类型。在AmazonS3 bucket中创建对象后,是否有可能更改该对象,或者我们是否必须继续在S3 bucket中创建每日负载的副本作为对象


我知道Amazon为我们提供了数据库选项,但我们被指示将数据加载到Amazon S3。

Amazon S3只是一个存储系统。它将存储提供的任何数据

不可能在AmazonS3中“更新”对象。对象可以被覆盖(替换),但不能追加

传统上,数据池中的信息是通过添加附加文件来附加的,例如每天转储的信息。处理数据湖外数据的系统通常处理多个文件。事实上,这是一个更有效的过程,因为数据可以并行处理,而不是试图读取单个大文件

所以,您的系统可以执行新的、完整的转储来替换数据,也可以使用增量数据存储其他文件

另一种常见做法是对数据进行分区,将文件放入不同的目录中,例如每月、每天或每小时的不同目录。这样,当系统处理数据湖中的数据时,它只需要读取已知包含给定时间段数据的目录中的文件。例如,如果查询希望处理给定月份的数据,它只需要读取包含该月份数据的目录,从而加快处理速度。(分区也可以是层次结构的,例如在一个月内的一天中有一小时的目录。)


要回答您的问题“我们必须如何在S3中实现增量加载/SCD类型”,这实际上取决于一旦数据进入数据池,您将如何使用它。最好以有助于最终使用数据的系统的方式存储数据。

非常感谢您的回复。正如您提到的,我将尝试实现分区,这对于更快的检索非常有用。