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
Apache spark 当spark作业写入S3并使用athena进行查询时,如何使数据高度可用_Apache Spark_Amazon S3_Pyspark_Amazon Athena - Fatal编程技术网

Apache spark 当spark作业写入S3并使用athena进行查询时,如何使数据高度可用

Apache spark 当spark作业写入S3并使用athena进行查询时,如何使数据高度可用,apache-spark,amazon-s3,pyspark,amazon-athena,Apache Spark,Amazon S3,Pyspark,Amazon Athena,我正在存储通过firehose传输到S3的数据流,并在Athena wo中创建了表来查询这些数据。S3中的数据根据clientID、date等字段进行分区。spark作业正在处理定期传入的数据。在每次运行时,spark job都会将数据(该时间间隔的增量)与S3中该分区中已经可用的基础数据(如果有重复记录,则在上次修改时间之前)合并,并覆盖该分区以进行保存。当S3A提交者写入这些文件时,它会删除现有文件并复制新创建的文件。是否有可能在从athena表查询数据时,它不会返回任何数据,因为旧文件已被

我正在存储通过firehose传输到S3的数据流,并在Athena wo中创建了表来查询这些数据。S3中的数据根据clientID、date等字段进行分区。spark作业正在处理定期传入的数据。在每次运行时,spark job都会将数据(该时间间隔的增量)与S3中该分区中已经可用的基础数据(如果有重复记录,则在上次修改时间之前)合并,并覆盖该分区以进行保存。当S3A提交者写入这些文件时,它会删除现有文件并复制新创建的文件。是否有可能在从athena表查询数据时,它不会返回任何数据,因为旧文件已被删除,而新文件尚未完全写入。如果是,你如何处理

是,如果删除了底层S3对象,athena查询将返回零行。S3A提交者将在上传之前删除对象,因此,在表备份数据丢失或不完整的情况下,总是会有一段时间的风险

要使athena查询对正在更新的数据高度可用,请以适当的频率将查询数据批量写入S3中的版本化路径(如
S3://my data/2020-02-07
)。批处理完成后,向athena DB发送
ALTER TABLE SET LOCATION
DDL,将其指向最新版本的路径。然后,根据您的保留策略清理旧路径(最新版本-n)