Второй запрос не выполняется ⇐ Python
-
Anonymous
Второй запрос не выполняется
Я пытаюсь реализовать озеро данных через Python с помощью Trino, Dagster, а также openpyxl, и пытаюсь инициализировать таблицу внутри каталога и схемы (оба определены в моей конфигурации). Мой первый запрос: «Создать схему, если пример не существует» работает, а второй — нет. Может ли быть проблема с завершением транзакции, поэтому мой второй запрос не учитывается?
Я безуспешно пытался не закрывать курсор перед выполнением запроса, а также пытался ввести неверную информацию внутри запроса, чтобы вызвать исключение, однако оно не вызвало его.
Вот фрагмент кода, где lista содержит список кортежей типа (имя, тип):
@op(required_resource_keys={'trino'}) Защиту инициализации (контекст, список): трино = context.resources.trino с trino.get_connection() как conn: курсор = conn.cursor() курсор.execute("""СОЗДАТЬ СХЕМУ, если не существует my_catalog.example""") пытаться: columns_definition = ', '.join([f'{col[0]} {col[1]}' для столбца в списке]) query = f'''CREATE TABLE, если не существует ex1 ({columns_definition})''' курсор.execute (запрос) context.log.info(f'Таблица, созданная со столбцами: {columns_definition}') конн.коммит() кроме исключения как e: конн.откат() context.log.error(f'Ошибка создания таблицы: {e}') возвращаться [] @repository защита рабочей области(): конфигурация = { "Ресурсы": { "трино": { "конфигурация": { "хозяин": "трино", "порт": "8060", "пользователь": "трино", "пароль": "", "каталог": "мой_каталог", "схема": "пример" } } } } resources_config = config.get("resources", {}).get("trino", {}).get("config", {}) с build_op_context(resources={'trino':trino_resource.configured(resource_config)}) как con: return [init(con,read_files_op(con))]
Я пытаюсь реализовать озеро данных через Python с помощью Trino, Dagster, а также openpyxl, и пытаюсь инициализировать таблицу внутри каталога и схемы (оба определены в моей конфигурации). Мой первый запрос: «Создать схему, если пример не существует» работает, а второй — нет. Может ли быть проблема с завершением транзакции, поэтому мой второй запрос не учитывается?
Я безуспешно пытался не закрывать курсор перед выполнением запроса, а также пытался ввести неверную информацию внутри запроса, чтобы вызвать исключение, однако оно не вызвало его.
Вот фрагмент кода, где lista содержит список кортежей типа (имя, тип):
@op(required_resource_keys={'trino'}) Защиту инициализации (контекст, список): трино = context.resources.trino с trino.get_connection() как conn: курсор = conn.cursor() курсор.execute("""СОЗДАТЬ СХЕМУ, если не существует my_catalog.example""") пытаться: columns_definition = ', '.join([f'{col[0]} {col[1]}' для столбца в списке]) query = f'''CREATE TABLE, если не существует ex1 ({columns_definition})''' курсор.execute (запрос) context.log.info(f'Таблица, созданная со столбцами: {columns_definition}') конн.коммит() кроме исключения как e: конн.откат() context.log.error(f'Ошибка создания таблицы: {e}') возвращаться [] @repository защита рабочей области(): конфигурация = { "Ресурсы": { "трино": { "конфигурация": { "хозяин": "трино", "порт": "8060", "пользователь": "трино", "пароль": "", "каталог": "мой_каталог", "схема": "пример" } } } } resources_config = config.get("resources", {}).get("trino", {}).get("config", {}) с build_op_context(resources={'trino':trino_resource.configured(resource_config)}) как con: return [init(con,read_files_op(con))]