Хотя Dask может обрабатывать некоторые файлы для вас (см. client.upload_file
), вы должны использовать свои собственные методы для распределения конфиденциальных файлов, таких как учетные данные, в определенные c местоположения рабочего файла. система. Опции включают scp
, секреты kubernetes и многие другие методы.
Если вы уверены в безопасности своего кластера, вы можете включить файл ключа в аргументы своей функции и записать его в файл в функции (см. ниже) или, если вызов позволяет, передать байты напрямую.
def execute_query(q, key):
if not os.path.exists(keyfile): # if the data needs to be in a file
open(keyfile, 'wb').write(key)
conn = create_engine(f'presto://{user}:{password}@{host}:{port}/{catalog}/{schema}',
connect_args={'protocol': 'https',
'requests_kwargs': {'verify': keyfile}})
return pd.read_sql(q, conn)
key = dask.delayed(open('keyfile.pem', 'rb').read())
df = dd.from_delayed([
delayed(execute_query)(q, key) for q in queries])