Являются ли наборы данных S3 Kedro поточно-ориентированными?
CSVS3DataSet
/HDFS3DataSet
/HDFS3DataSet
использовать boto3
, который, как известно, не является потокобезопасным https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html?highlight=multithreading
Можно ли использовать эти наборы данных с ParallelRunner?
1 ответ
Kedro
использует s3fs
, который использует boto3
библиотека для доступа к S3. Boto3
действительно не является потокобезопасным, но только если вы пытаетесь повторно использовать один и тот же объект Session.
Все Kedro
Наборы данных S3 содержат отдельные экземпляры S3FileSystem
, что означает отдельные сеансы бото, поэтому это безопасно.
Вероятно, это не очень хорошо с точки зрения производительности, и если вы работаете с сотнями наборов данных S3 параллельно или с тысячами небольших наборов данных S3 последовательно, конвейер может работать довольно долго и даже выходить из строя при ошибках подключения, но вы полностью в безопасности с несколько десятков из них.