Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Data Warehouse Service/ Prácticas recomendadas / Migración de datos/ Uso de CDM para migrar datos de Oracle a un clúster de DWS/ Migración de definiciones de tablas/ Migración de definiciones y sintaxis de tablas
Actualización más reciente 2026-09-29 GMT+08:00
Migración de definiciones y sintaxis de tablas
- Inicie sesión en PL/SQL Developer con una cuenta con el permiso sysdba. En este ejemplo, se utiliza la cuenta db_user01.
A continuación, se utiliza la versión de prueba de PL/SQL Developer como ejemplo.
- En la barra de menús, seleccione Tools > Export User Objects.
- Seleccione el usuario que inició sesión db_user01, elija el objeto de tabla APEX2_DYNAMIC_ADD_REMAIN_TEST de dicho usuario, seleccione la ruta del archivo de salida (asigne el nombre test al archivo SQL de salida) y haga clic en Export.

El archivo DDL exportado es el siguiente:

- Coloque el archivo DDL exportado en el directorio input de la carpeta DSC descomprimida.

- En el directorio de runDSC.bat, presione Shift y haga clic con el botón derecho del mouse. Seleccione Open PowerShell window here y realice la conversión. Reemplace D:\DSC\DSC\input, D:\DSC\DSC\output, y D:\DSC\DSC\log con las rutas de DSC reales.
1.\runDSC.bat --source-db Oracle --input-folder D:\DSC\DSC\input --output-folder D:\DSC\DSC\output --log-folder D:\DSC\DSC\log --application-lang SQL --conversion-type bulk --target-db gaussdbA
- Una vez completada la conversión, el archivo DDL convertido se genera automáticamente en el directorio output de DSC.


- La estructura de definición de tablas de DWS es diferente a la de Oracle. Debe modificar manualmente la definición de la tabla convertida. Comente \echo en el archivo (si utiliza gsql para importar definiciones de tablas, no es necesario hacer esto) y cambie manualmente la columna de distribución de la tabla especificada.
La columna de distribución de una tabla hash debe cumplir los siguientes requisitos, que se clasifican por prioridad en orden descendente:
- Los valores de la clave de distribución deben ser discretos para que los datos puedan distribuirse uniformemente en cada DN. Puede seleccionar la clave principal de la tabla como clave de distribución. Por ejemplo, para una tabla de información de persona, elija la columna número de identificación como clave de distribución.
- No seleccione la columna donde existe un filtro constante. Por ejemplo, si existe una restricción constante (por ejemplo, zqdh= '000001') en la columna zqdh en algunas consultas de la tabla dwcjk, no se recomienda utilizar zqdh como clave de distribución.
- Seleccione la condición de join como la columna de distribución, de modo que las tareas de join se puedan delegar a los DN para su ejecución, lo que reduce la cantidad de datos transferidos entre ellos.
- Cree un clúster de DWS. Para obtener más información, consulte Creación de un clúster.
- Conéctese a la base de datos de DWS como administrador del sistema dbadmin. La base de datos predeterminada gaussdb se conecta por primera vez.
- Cree una nueva base de datos de destino test y luego cambie a ella.
1CREATE DATABASE test WITH ENCODING 'UTF-8' DBCOMPATIBILITY 'ORA' TEMPLATE template0;
- Cree un esquema y cambie a él. El nombre del esquema debe ser el mismo que el nombre de usuario de Oracle (db_user01 en este ejemplo).
1 2
CREATE SCHEMA db_user01; SET CURRENT_SCHEMA = db_user01;
- Copie las sentencias DDL convertidas en 7 en la ventana SQL para su ejecución.
- Si la tabla APEX2_DYNAMIC_ADD_REMAIN_TEST se puede encontrar en el esquema en la base de datos test del clúster de DWS, la definición de la tabla se migra.
1SELECT COUNT(*) FROM db_user01.APEX2_DYNAMIC_ADD_REMAIN_TEST;
Tema principal: Migración de definiciones de tablas
¿Cuál es su calificación general para esta página?
0
1
2
3
4
5
6
7
8
9
10
Muy poco satisfactoriaMuy satisfactoria
Muchas gracias por sus comentarios. Seguiremos trabajando para mejorar la documentación.
El sistema está ocupado. Vuelva a intentarlo más tarde.

