Являются ли наборы данных 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 последовательно, конвейер может работать довольно долго и даже выходить из строя при ошибках подключения, но вы полностью в безопасности с несколько десятков из них.

Другие вопросы по тегам