S3 Kedro 数据集是线程安全的吗?
Are S3 Kedro datasets thread-safe?
CSVS3DataSet
/HDFS3DataSet
/HDFS3DataSet
使用boto3
,已知不是线程安全的https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html?highlight=multithreading#multithreading-multiprocessing
可以将这些数据集与 ParallelRunner 一起使用吗?
Kedro
使用 s3fs
,它使用 boto3
库访问 S3。 Boto3
确实不是线程安全的,但前提是您尝试重用同一个 Session 对象。
所有 Kedro
S3 数据集维护 S3FileSystem
的单独实例,这意味着单独的 boto 会话,所以它是安全的。
它在性能方面可能不是很好,如果您并行处理数百个 S3 数据集,或顺序处理数千个小型 S3 数据集 - 管道可能 运行 很长甚至连接失败错误,但是你有几十个错误是完全安全的。
CSVS3DataSet
/HDFS3DataSet
/HDFS3DataSet
使用boto3
,已知不是线程安全的https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html?highlight=multithreading#multithreading-multiprocessing
可以将这些数据集与 ParallelRunner 一起使用吗?
Kedro
使用 s3fs
,它使用 boto3
库访问 S3。 Boto3
确实不是线程安全的,但前提是您尝试重用同一个 Session 对象。
所有 Kedro
S3 数据集维护 S3FileSystem
的单独实例,这意味着单独的 boto 会话,所以它是安全的。
它在性能方面可能不是很好,如果您并行处理数百个 S3 数据集,或顺序处理数千个小型 S3 数据集 - 管道可能 运行 很长甚至连接失败错误,但是你有几十个错误是完全安全的。