Я бы хотел пройтись по последним файлам S3 и набрать sh их для Redshift соответствующих таблиц с помощью команды COPY.
У меня есть скрипт, который читает из Bucket 1 и ежедневно отправляет файлы CSV в Bucket 2.
Конечный путь выглядит примерно так:
dev/prom/mt/table_name/table_name=2020-04-08/table_name_2020-04-08.csv
У меня есть json файл конфигурации со всеми именами source_table, target_table_names и столбцами.
tb_list = []
prefix="dev/mt/"
for obj in TARGET_BUCKET.objects.filter(Prefix=prefix):
if obj.key.endswith(".csv"):
# print(obj.key)
path = "s3://bucket-name/" + obj.key
x = obj.key.replace(prefix, "")
x = x.split("/")
RS_TABLE="stg_"+ x[0] #redshift target table
S3_OBJECT="/"+ obj.key #full path to csv file in target bucekt
ods_list.append("(s3_object: " + S3_OBJECT + "," + RS_TABLE + ")")
Какой будет самый быстрый и простой подход? Должен ли я создать словарь? Это будет один большой для l oop и команды COPY, вложенной внутрь?