Запросы AWS Redshift прерываются при переносе таблиц из AWS Glue - PullRequest
0 голосов
/ 11 июля 2019

Мне нужно перенести около 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 мс.

Кто-нибудь знает, почему это происходит и как это исправить?Спасибо!

...