Мне нужно перенести около 300 таблиц в базе данных в AWS Glue в кластер dc2.large в AWS Redshift.Каким-то образом только 99 таблиц было создано в кластере Redshift, остальные запросы были прерваны без подробностей.
Я пытался проверить, была ли это проблема с хранилищем, это не так.Я пытался проверить детали каждого запроса, детали не были предоставлены.Я пытался запросить STL_LOAD_ERRORS, не было записи.Я не знаю, может ли тип / размер кластера повлиять на это.
# constants are filled
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
logger = glueContext.get_logger()
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
client = boto3.client(service_name='glue', region_name=aws_region)
responseGetTables = client.get_tables(DatabaseName=source_db)
tableList = responseGetTables['TableList']
for tableDict in tableList:
table = tableDict['Name']
try:
datasource = glueContext.create_dynamic_frame.from_catalog(
database = source_db,
table_name = table,
transformation_ctx = "datasource"
)
datasink = glueContext.write_dynamic_frame.from_jdbc_conf(
frame = datasource,
catalog_connection = connection_name,
connection_options = {
"dbtable": table,
"database": target_db,
"aws_iam_role": iam_role
},
redshift_tmp_dir = args["TempDir"],
transformation_ctx = "datasink"
)
except Exception as e:
pass
job.commit()
Выше указано, что задание ETL запускалось из AWS Glue, задание выполнено успешно.Некоторые из запросов были завершены (следовательно, создано 99 таблиц), другие были прерваны в течение 30 мс.
Кто-нибудь знает, почему это происходит и как это исправить?Спасибо!