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 s3 使用Autoloader从AWS S3加载到Azure Datalake时的增量表事务性保证_Amazon S3_Databricks_Azure Databricks_Azure Data Lake_Delta Lake - Fatal编程技术网

Amazon s3 使用Autoloader从AWS S3加载到Azure Datalake时的增量表事务性保证

Amazon s3 使用Autoloader从AWS S3加载到Azure Datalake时的增量表事务性保证,amazon-s3,databricks,azure-databricks,azure-data-lake,delta-lake,Amazon S3,Databricks,Azure Databricks,Azure Data Lake,Delta Lake,在AWS S3是源代码,Delta lake在Azure Datalake Gen中的情况下,尝试使用autoloader。当我尝试读取文件时,会出现以下错误 从提供事务保证的角度来看,从非AWS写入AWS上的增量表是不安全的。如果您可以保证没有其他人会同时修改同一个增量表,则可以通过在启动集群时将SparkConf:“spark.databricks.Delta.logStore.crossCloud.fatal”设置为false来关闭此检查 尝试在群集级别设置设置,效果良好。我的问题是,我们

在AWS S3是源代码,Delta lake在Azure Datalake Gen中的情况下,尝试使用autoloader。当我尝试读取文件时,会出现以下错误

从提供事务保证的角度来看,从非AWS写入AWS上的增量表是不安全的。如果您可以保证没有其他人会同时修改同一个增量表,则可以通过在启动集群时将SparkConf:“spark.databricks.Delta.logStore.crossCloud.fatal”设置为false来关闭此检查


尝试在群集级别设置设置,效果良好。我的问题是,我们是否可以通过将数据从AWS3加载到Azure Datalake(Datalake是我们的Delta Lake的后端存储)来确保事务性保证。我们不想在集群级别设置“spark.databricks.delta.logStore.crossCloud.fatal”。如果我们这样做会有任何问题吗?这是生产ETL管道的一个好解决方案吗?

当Databricks检测到您正在进行多云工作时,会出现此警告。 但此警告适用于使用Delta写入AWS S3时的情况,因为AWS没有原子写入操作(例如,如果没有,则输入),因此它需要某种仅在AWS上可用的协调进程


但在您的情况下,您可以忽略此消息,因为您只是从AWS S3读取数据,然后写入Azure Datalake上的Delta。

谢谢Alex,它实际上不允许我继续,它终止自动加载流,除非我在群集级spark配置中将“spark.DataRicks.Delta.logStore.crossCloud.fatal”设置为false。我同意错误信息实际上是误导性的,我们没有将数据写入AWS上的Delta表。无论如何,我们不能在集群级别将“spark.databricks.delta.logStore.crossCloud.fatal”设置为false,因为这将影响所有其他ETL管道。不确定,需要查看-这可能需要时间