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 数据集 - 管道可能 运行 很长甚至连接失败错误,但是你有几十个错误是完全安全的。