Los espacios de trabajo de conversión lo ayudan a convertir el esquema y los objetos de su base de datos de origen a la sintaxis SQL que sea compatible con su base de datos de destino. Esta página proporciona una descripción general de las áreas de trabajo de conversión del Servicio de migración de bases de datos:
Los objetos admitidos por la conversión de esquema y código determinista enumeran los objetos de Oracle admitidos para la conversión de esquema determinista.
El editor SQL interactivo describe qué objetos puede modificar directamente en el editor del espacio de trabajo de conversión.
Las funciones de conversión impulsadas por Gemini analizan cómo se puede integrar el soporte de IA generativa para acelerar el proceso de conversión de esquemas.
La sección de archivos de asignación de conversión proporciona una descripción general de las directivas de personalización que puede utilizar para anular las reglas de conversión de esquemas deterministas.
Los espacios de trabajo de conversión heredados describen los espacios de trabajo heredados que no brindan soporte para el editor SQL interactivo.
Hay ciertos tipos de datos que no son compatibles con las migraciones de Oracle. Para obtener más información, consulte Limitaciones conocidas para los tipos de datos .
Conversión de esquema y código determinista
Cuando crea un espacio de trabajo de conversión , el Servicio de migración de bases de datos realiza inmediatamente la conversión del esquema inicial utilizando un conjunto de reglas de conversión deterministas donde tipos de datos y objetos específicos de Oracle se asignan a tipos de datos y objetos específicos de PostgreSQL. Este proceso admite un subconjunto muy específico de objetos de base de datos Oracle disponibles.
La conversión de código determinista proporciona soporte para los siguientes objetos de base de datos de Oracle:
Elementos de esquema de Oracle soportados
- Restricciones
- Índices (solo índices que se crean en el mismo esquema que su tabla)
- Vistas materializadas
- Tipos de objetos (soporte parcial)
- Secuencias
- Sinónimos
- Mesas
- Vistas
Elementos de código de Oracle soportados
- Activadores (solo nivel de tabla)
- Paquetes
- Funciones
- Procedimientos almacenados
Editor SQL interactivo
El editor SQL interactivo le permite modificar la sintaxis convertida de PostgreSQL directamente en el Servicio de migración de bases de datos. Puede usarlo para solucionar problemas de conversión o ajustar el esquema para que se ajuste mejor a sus necesidades. Algunos objetos no se pueden modificar en el editor integrado.
Objetos editables de Oracle
Después de convertir el código y el esquema de la base de datos fuente, puede utilizar el editor interactivo para modificar el SQL generado para ciertos tipos de objetos. El editor admite los siguientes objetos de Oracle:
- Activadores de tabla (requiere permiso)
- Vistas materializadas
- Paquetes
- Funciones, procedimientos almacenados.
- Sinónimos
- Vistas
- Restricciones
- Índices
- Secuencias
Además, algunos objetos se convierten pero no están disponibles para editarlos directamente dentro del Servicio de migración de bases de datos. Para modificar dichos objetos, debe realizar las actualizaciones directamente en la base de datos de destino después de aplicar el esquema y el código convertidos .
Objetos que no son compatibles con la edición:
- Tipos de objetos definidos por el usuario
- Mesas
- esquemas
Acelere la conversión de código y esquema con Gemini
El servicio de migración de bases de datos integra Gemini para Google Cloud en espacios de trabajo de conversión para ayudarle a acelerar y mejorar el proceso de conversión en las siguientes áreas:
Mejore los resultados de conversión deterministas con la conversión automática impulsada por Gemini para utilizar el poder de la IA para reducir significativamente la cantidad de ajustes manuales necesarios en su código PostgreSQL.
Proporcione funciones de explicabilidad del código con el asistente de conversión: un conjunto de mensajes dedicados que pueden ayudarlo a comprender mejor la lógica de conversión, proponer soluciones para problemas de conversión u optimizar el código convertido.
Acelere la aplicación de correcciones para problemas de conversión con las sugerencias de conversión de código Gemini: un mecanismo donde el modelo Gemini puede aprender a medida que soluciona problemas de conversión y sugiere cambios a otros objetos defectuosos en el espacio de trabajo.
Para obtener más información sobre la conversión impulsada por Gemini, consulte las siguientes páginas:
Archivos de mapeo de conversión
Puede personalizar la lógica de conversión con un archivo de mapeo de conversión . El archivo de mapeo de conversión es un archivo de texto que contiene instrucciones precisas (denominadas directivas de conversión ) sobre cómo deben convertirse sus objetos de Oracle en objetos de PostgreSQL.
Directivas de conversión admitidas
El Servicio de migración de bases de datos admite las siguientes directivas de conversión para archivos de asignación de conversión:
EXPORT_SCHEMA
EXPORT_SCHEMA
es una directiva obligatoria para todos los archivos de mapeo de conversión. El Servicio de migración de bases de datos requiere esta instrucción para garantizar que sus esquemas de origen se conviertan a los esquemas de destino correctos. Asegúrese de que sus archivos de mapeo de conversión incluyan esta línea:
EXPORT_SCHEMA 1
SCHEMA
El Servicio de migración de bases de datos debe poder determinar qué esquema contiene los objetos que deben modificarse con sus directivas de conversión. La directiva SCHEMA
da como resultado los siguientes ajustes en el flujo de conversión:
- El Servicio de migración de bases de datos convierte solo este esquema. Si necesita convertir otros esquemas en un único espacio de trabajo de conversión, deberá cargar varios archivos con esquemas diferentes.
- Todas las demás directivas de personalización proporcionadas en su archivo se aplican solo a objetos en este esquema en particular.
Utilice el siguiente formato:
SCHEMA SCHEMA_NAME
Donde SCHEMA_NAME es el nombre de su esquema en la base de datos de origen.
- Si incluye esta directiva en el archivo de asignación de conversión, todas las personalizaciones se aplican solo a los objetos contenidos en este esquema específico. Si desea personalizar objetos en otros esquemas, debe crear varios archivos de mapeo de conversión y cargarlos en el espacio de trabajo de conversión.
- Si omite esta directiva, debe proporcionar nombres de esquema explícitos para los objetos modificados por otras directivas de conversión. Por ejemplo, en lugar de usar
SOURCE_TABLE_NAME
para la directivaREPLACE_TABLES
, necesitaría usar" SCHEMA_NAME . SOURCE_TABLE_NAME "
.
DATA_TYPE
Puede utilizar esta directiva para asignar explícitamente cualquier tipo de datos admitido entre la sintaxis de Oracle y PostgreSQL. Esta directiva espera una lista de asignaciones separadas por comas. La definición completa debe proporcionarse en una sola línea, pero incluye varias directivas DATA_TYPE
en su archivo de configuración. Utilice el siguiente formato:
DATA_TYPE ORACLE_DATA_TYPE1:PGSQL_DATA_TYPE1 DATA_TYPE ORACLE_DATA_TYPE2:PGSQL_DATA_TYPE2...
Donde ORACLE_DATA_TYPE y PGSQL_DATA_TYPE son tipos de datos admitidos por sus respectivas versiones de Oracle y PostgreSQL que utiliza en su migración. Para obtener información sobre las versiones compatibles, consulte Descripción general del escenario .
Ejemplo :
DATA_TYPE REAL:double precision,SMALLINT:integer
Para obtener más información sobre los tipos de datos de Oracle y PostgreSQL, consulte:
- Tipos de datos de Oracle en la documentación de Oracle.
- Tipos de datos de PostgreSQL en la documentación de PostgreSQL.
MODIFY_TYPE
La directiva MODIFY_TYPE
le permite controlar a qué tipo de datos el Servicio de migración de bases de datos convierte una columna específica en su tabla de origen. Esta directiva espera una lista de asignaciones separadas por comas. La definición completa debe proporcionarse en una sola línea, pero incluye varias directivas MODIFY_TYPE
en su archivo de configuración. Utilice el siguiente formato:
MODIFY_TYPE SOURCE_TABLE_NAME1:COLUMN_NAME:EXPECTED_END_RESULT_DATA_TYPE MODIFY_TYPE SOURCE_TABLE_NAME2:COLUMN_NAME:EXPECTED_END_RESULT_DATA_TYPE...
Dónde:
- SOURCE_TABLE_NAME es el nombre de la tabla que contiene la columna donde desea cambiar el tipo de datos.
- COLUMN_NAME es el nombre de la columna para la que desea personalizar la asignación de conversión.
- EXPECTED_END_RESULT_DATA_TYPE es el tipo de datos de PostgreSQL que desea que utilice la columna convertida.
Ejemplo :
MODIFY_TYPE events:dates_and_times:DATETIME,users:pseudonym:TEXT
PG_INTEGER_TYPE
De forma predeterminada, el Servicio de migración de bases de datos convierte los tipos NUMBER(p,s)
al tipo PostgreSQL DECIMAL(p,s)
.
Puede modificar este comportamiento con la directiva PG_INTEGER_TYPE
. Establezca su valor en 1
y fuerce que todos sus tipos NUMBER
con precisión y escala ( NUMBER(p,s)
) se conviertan en tipos postgreSQL smallint
, integer
o bigint
según el número de dígitos de precisión.
Incluya la siguiente configuración en su archivo de mapeo de conversión:
PG_INTEGER_TYPE 1
PG_NUMERIC_TYPE
Establezca esta directiva en 1
si desea convertir todos sus tipos NUMBER
con precisión y escala ( NUMBER(p,s)
) en tipos real
o float
de PostgreSQL (según su número de dígitos de precisión).
Si establece esta directiva en 0
, sus valores NUMBER(p,s)
conservan su valor original exacto y utilizan el tipo de datos interno de PostgreSQL.
Incluya la siguiente configuración en su archivo de mapeo de conversión:
PG_NUMERIC_TYPE 1
DEFAULT_NUMERIC
La conversión predeterminada para NUMBER
s sin precisión cambia si también usa la directiva PG_INTEGER_TYPE
:
- Si utiliza la directiva
PG_INTEGER
,NUMBER
s sin precisión se convierten a valoresDECIMAL
. - Si no utiliza la directiva
PG_INTEGER
,NUMBER
s sin precisión se convierten a valoresBIGINT
.
Puede modificar este comportamiento y utilizar la directiva DEFAULT_NUMERIC
para especificar qué tipo de datos se debe utilizar para NUMBER
tipos sin puntos de precisión especificados. Utilice el siguiente formato:
DEFAULT_NUMERIC POSTGRESQL_NUMERIC_DATA_TYPE
Donde POSTGRESQL_NUMERIC_DATA_TYPE es uno de los siguientes: integer
, smallint
, bigint
.
Ejemplo :
DEFAULT_NUMERIC integer
REPLACE_COLS
Puede utilizar la directiva REPLACE_COLS
para cambiar el nombre de las columnas en su esquema convertido. Esta directiva espera una lista de asignaciones separadas por comas. Utilice el siguiente formato:
REPLACE_COLS SOURCE_TABLE_NAME1(SOURCE1_TABLE1_COLUMN_NAME1:DESTINATION_TABLE1_COLUMN_NAME1,SOURCE_TABLE1_COLUMN_NAME2:DESTINATION_TABLE1_COLUMN_NAME2),SOURCE_TABLE_NAME2(SOURCE_TABLE2_COLUMN_NAME1:DESTINATION_TABLE2_COLUMN_NAME1,SOURCE_TABLE2_COLUMN_NAME2:DESTINATION_TABLE2_COLUMN_NAME2)...
Dónde:
- SOURCE_TABLE_NAME es el nombre de la tabla que contiene la columna cuyo nombre desea cambiar.
- SOURCE_COLUMN_NAME es el nombre de la columna en su fuente cuyo nombre desea cambiar.
- DESTINATION_COLUMN_NAME es el nuevo nombre que le dará a la columna que desea usar en el esquema convertido.
Ejemplo :
REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname)
REPLACE_TABLES
Puede utilizar la directiva REPLACE_TABLES
para cambiar el nombre de las tablas o moverlas a un nuevo esquema. Esta directiva espera una lista de asignaciones separadas por espacios. Para obtener más información sobre la sintaxis de cada caso de uso, expanda las siguientes secciones.
Cambiar el nombre de las tablas
Para cambiar el nombre de las tablas en su esquema convertido, utilice el siguiente formato:
REPLACE_TABLES SOURCE_TABLE_NAME1:DESTINATION_TABLE_NAME1 SOURCE_TABLE_NAME2:DESTINATION_TABLE_NAME2
Dónde:
- SOURCE_TABLE_NAME es el nombre de la tabla de origen cuyo nombre desea cambiar en el esquema convertido.
- DESTINATION_TABLE_NAME es el nuevo nombre de la tabla que desea utilizar en el esquema convertido.
Ejemplo :
REPLACE_TABLES "events:login_events" "users:platform_users"
Mover tablas entre esquemas
Puede utilizar esta directiva para mover tablas entre esquemas agregando el prefijo del esquema al nuevo nombre de la tabla. Este mecanismo se puede utilizar independientemente de cómo utilice la directiva SCHEMA para todo el archivo de conversión. Por ejemplo:
REPLACE_TABLES "events:NEW_SCHEMA_NAME.login_events"
Alias para personalizar tipos de datos
Cuando usa directivas de conversión para modificar cómo Database Migration Service convierte diferentes tipos de datos (por ejemplo, con las directivas DATA_TYPE
, MODIFY_TYPE
o PG_NUMERIC_TYPE
), puede usar alias en lugar de los tipos de datos SQL de origen.
Expanda la siguiente sección para ver la lista de alias de tipos de datos admitidos por el Servicio de migración de bases de datos.
Alias de tipos de datos
Alias | Convertido al tipo PostgreSQL |
---|---|
bigint , int8 | BIGINT |
bool boolean | BOOLEAN |
bytea | BYTEA |
char , character | CHAR |
character varying , varchar | VARCHAR |
date | DATE |
decimal , numeric | DECIMAL |
double precision , float8 | DOUBLE PRECISION |
real , float4 | REAL |
int , integer , int4 | INTEGER |
int2 | SMALLINT |
interval | INTERVAL |
json | JSON |
smallint | SMALLINT |
text | TEXT |
time | TIME |
timestamp | TIMESTAMP |
timestamptz | TIMESTAMPTZ |
timetz | TIMETZ |
uuid | UUID |
XML | XML |
Archivo de mapeo de conversión de muestra
Consulte el siguiente archivo de asignación de conversión de ejemplo que utiliza todas las directivas de conversión de esquemas admitidas:
EXPORT_SCHEMA 1 SCHEMA root PG_NUMERIC_TYPE 0 PG_INTEGER_TYPE 1 DEFAULT_NUMERIC integer DATA_TYPE NUMBER(4\,0):integer MODIFY_TYPE events:dates_and_times:TIMESTAMP REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname) REPLACE_TABLES events:login_events users:platform_users
Los resultados del uso de este archivo son los siguientes:
-
EXPORT_SCHEMA 1
es una directiva obligatoria. -
SCHEMA root
da como resultado los siguientes ajustes en el flujo de conversión:- El Servicio de migración de bases de datos solo realiza la conversión de entidades en el esquema
root
. No se convierte ningún otro esquema. - Todas las demás directivas de personalización de este archivo se aplican únicamente a las columnas y tipos de datos definidos en el esquema
root
.
- El Servicio de migración de bases de datos solo realiza la conversión de entidades en el esquema
-
PG_INTEGER_TYPE 1
hace que el Servicio de migración de bases de datos convierta todos los tipos de datos numéricos de Oracle que se encuentran en las tablas del esquemaroot
a tipos específicos de PostgreSQL en lugar de tipos numéricos portátiles ANSI. -
DEFAULT_NUMERIC
hace que el Servicio de migración de bases de datos conviertaNUMBER
valores que no tienen un punto de precisión especificado en el tipoINTEGER
de PostgreSQL. Esto solo se aplica aNUMBER
valores que se encuentran en las tablas del esquemaroot
. -
DATA_TYPE NUMBER(4\,0):integer
hace que el Servicio de migración de bases de datos convierta valoresNUMBER(4,0)
específicos a PostgreSQLINTEGER
. - La directiva
MODIFY_TYPE
hace que el Servicio de migración de bases de datos convierta los datos de la columnadates_and_times
en la tabla de origen deevents
específicamente al tipoDATETIME
de PostgreSQL, independientemente del formato de la columna de origen real. -
REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname)
hace que el Servicio de migración de bases de datos cambie el nombre de las siguientes columnas en el esquema convertido:- La columna
dates_and_times
en la tablaevents
de origen cambia de nombre aevent_dates
en la misma tabla en el esquema convertido. - La columna
pseudonym
en la tablausers
de origen cambia de nombre anickname
en la misma tabla en el esquema convertido.
events
yusers
en el esquemaroot
. - La columna
-
REPLACE_TABLES events:login_events users:platform_users
cambia el nombre de las siguientes tablas en el esquema convertido:- La tabla
events
cambia de nombre alogin_events
. - La tabla
users
cambia de nombre aplatform_users
.
events
yusers
en el esquemaroot
. - La tabla
Espacios de trabajo de conversión heredados
Los espacios de trabajo de conversión heredados son un tipo de espacio de trabajo de conversión más antiguo y limitado. Los espacios de trabajo de conversión heredados no admiten las funciones de conversión mejoradas de Gemini ni el editor SQL interactivo. Solo puedes usarlos para convertir tu esquema fuente con la herramienta de migración Ora2Pg.
No recomendamos utilizar el tipo heredado de espacios de trabajo de conversión para sus migraciones. Si su escenario requiere el uso de áreas de trabajo de conversión heredadas, consulte Trabajar con áreas de trabajo de conversión heredadas .
¿Qué sigue?
Para obtener información sobre el uso de espacios de trabajo de conversión, consulte: