#amazon-s3 #pyspark #amazon-redshift #aws-glue #aws-glue-data-catalog
#amazon-s3 #pyspark #amazon-redshift #aws-клей #aws-glue-каталог данных
Вопрос:
У меня есть корзина в S3 и много папок внутри этой корзины. В каждой папке у меня от 5 до 6 файлов. Я хочу переместить эти файлы в Redshift. Я использую AWS crawler и Glue для перемещения файлов. Но, когда я запускаю поисковый робот, в каталог данных добавляется только одна таблица. Любые другие способы сделать это? В качестве другого варианта я попытался перебрать файлы в папках s3 без запуска сканеров. Вместо этого использовал задания для прямого подключения к s3. Но не знаю, как переместить их в redshift. это код, в котором я застрял.
client = boto3.client('glue',region_name='us-east-1')
paginator = client.get_paginator('list_objects_v2')
result = paginator.paginate(Bucket='bucketname',StartAfter='foldername')
for page in result:
if "Contents" in page:
for key in page[ "Contents" ]:
keyString = key[ "Key" ]
print keyString
Ниже приведен код для перехода в redshift. Может ли кто-нибудь помочь изменить коды требуемым образом?
datasource0 = glueContext.create_dynamic_frame.from_options("s3",{'paths': ["file_paths"]},format="json")
datasink4 = glueContext.write_dynamic_frame.from_jdbc_conf(frame = datasource0, catalog_connection = "redshift", connection_options = {"dbtable": , "database": "googlesheets"}, redshift_tmp_dir = args["TempDir"], transformation_ctx = "datasink4")
job.commit()
Комментарии:
1. Вы проверили это ? В конце концов, вам не нужен glue, это удобный инструмент, который я нашел не очень полезным (для моего варианта использования)
2. На самом деле, у нас также есть обновленные данные. Итак, glue является частью озера данных. вот почему мы используем Glue. И поскольку у нас большое количество таблиц, мы подумали, что было бы лучше, если бы мы могли автоматизировать эти процессы