У меня есть 5 таблиц в базе данных Oracle. Мне нужно создать из них аналогичные структуры в AWS Redshift. Я использую cx_oracle для подключения к Oracle и дампа ddl в файле csv. Но изменение этого DDL для каждого типа данных в python, чтобы заставить его работать в Redshift, оказывается очень утомительным процессом.
Есть ли простой способ сделать это на Python? Есть ли какая-нибудь библиотека или функция, чтобы сделать это без проблем.
PS: Я пробовал использовать для этого AWS Schema Conversion Tool. Таблицы созданы в Redshift, но с ошибкой. В Redshift каждый тип данных удвоился.
Например: varchar (100) в Oracle превратился в varchar (200) в Redshift Кто-нибудь сталкивался раньше с подобной проблемой с SCT?






Проект cx_OracleTools и, в частности, инструмент DescribeObject в этом проекте имеют возможность извлекать DDL из базы данных Oracle. Возможно, вы сможете это использовать.
Я могу извлечь Oracle DDL. Я ищу способ изменить этот DDL на DDL, который может выполняться в Redshift. Redshift использует разные имена типов данных. Есть ли какая-нибудь библиотека или пакет, который может вносить необходимые изменения DDL? На данный момент я написал собственные операторы if-else для создания Redshift DDL из Oracle DDL.
Что ж, вы можете использовать базовый код для cx_OracleTools и настроить биты и части метаданных (например, типы данных) перед записью метаданных - это может быть полезно, поскольку вы можете получить доступ к битам и частям без необходимости синтаксического анализа . Кроме этого, я ничего не знаю о RedShift, чтобы помочь вам в этом!
Да ... похоже, вариант ... Постараюсь вернуться.
Мне удалось создать ddl для красного смещения, написав операторы elif для изменения типов данных. Искал более простой подход .. Любая помощь приветствуется.