Reglas y operaciones de configuración de tablas y recopilaciones - AWS Database Migration Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Reglas y operaciones de configuración de tablas y recopilaciones

Utilice la configuración de la tabla para especificar cualquier configuración que desee aplicar a una tabla o vista seleccionada para una operación específica. Las reglas de configuración de tablas son opcionales en función del punto de conexión y de los requisitos de migración.

En lugar de usar tablas y vistas, las bases de datos MongoDB y Amazon DocumentDB almacenan los registros de datos como documentos que se agrupan en recopilaciones. Una base de datos única para cualquier punto de conexión de MongoDB o Amazon DocumentDB es un conjunto específico de recopilaciones identificadas por el nombre de la base de datos.

Al migrar desde un origen de MongoDB o Amazon DocumentDB, se trabaja con la configuración de carga paralela de forma ligeramente diferente. En este caso, considere el tipo de segmentación automática o segmentación por rango de la configuración de carga paralela para recopilaciones seleccionadas en lugar de tablas y vistas.

Para las reglas de mapeo de tablas que utilizan el tipo de regla table-settings, puede aplicar los parámetros siguientes.

Parámetro Valores posibles Descripción
rule-type table-settings Un valor que aplica la regla a una tabla, vista o recopilación especificada mediante la regla de selección.
rule-id Un valor numérico. Un único valor numérico para identificar la regla.
rule-name Un valor alfanumérico. Un nombre exclusivo para identificar la regla.
object-locator Un objeto con los siguientes parámetros:
  • schema-name: el nombre del esquema. Para los puntos de conexión de MongoDB y Amazon DocumentDB, este es el nombre de la base de datos que contiene un conjunto de recopilaciones.

  • table-name: el nombre de la tabla, vista o recopilación.

El nombre de un esquema y una tabla o vista específicos o el nombre de una base de datos y una recopilación específicas (sin caracteres comodín).

parallel-load Un objeto con los siguientes parámetros:
  • type: especifica si la carga en paralelo está activada.

    Si lo está, este parámetro también especifica el mecanismo para identificar las particiones, subparticiones u otros segmentos de tabla o vista que se van a cargar en paralelo. Las particiones son segmentos que ya están definidos e identificados por el nombre en la tabla o vista de origen.

    En el caso de los puntos de enlace de MongoDB y Amazon DocumentDB, las particiones son segmentos. AWS DMS puede calcularlos automáticamente con los parámetros de autosegmentación asociados. O bien, puede especificarlos manualmente mediante los parámetros de segmentación por rango.

    Solo para los puntos de enlace de Oracle, las subparticiones son un nivel de segmentos adicional que ya están definidos e identificados por el nombre en la tabla o vista de origen. Puede identificar otros segmentos en la regla table-settings especificando límites en el intervalo de valores para una o varias columnas de tabla o vista.

  • partitions: cuando type es partitions-list, este valor especifica todas las particiones que se van a cargar en paralelo.

  • subpartitions: solo para los puntos de conexión de Oracle, cuando type es partitions-list, este valor especifica todas las subparticiones que se van a cargar en paralelo.

  • columns: cuando type es ranges, este valor especifica los nombres de columnas utilizadas para identificar segmentos basados en rango que se van a cargar en paralelo.

  • boundaries: cuando type es ranges, este valor especifica los valores de las columns utilizadas para identificar segmentos basados en rango que se van a cargar en paralelo.

Un valor que especifica una operación de carga en paralelo (varios subprocesos) en la tabla o vista identificada por la opción object-locator. En este caso, puede cargar en paralelo en cualquiera de las siguientes formas:

  • Por segmentos especificados por todas las particiones o subparticiones disponibles.

  • Por particiones y subparticiones seleccionadas.

  • Por segmentación automática o segmentos basados en rango que especifique.

Para obtener más información acerca de la carga paralela, consulte Uso de carga paralela para tablas, vistas y recopilaciones seleccionadas.

type Una de las siguientes para parallel-load:
  • partitions-auto: todas las particiones de la tabla o vista se cargan en paralelo. Cada partición se asigna a su propio subproceso.

    Esta configuración es obligatoria para que los puntos de conexión de origen de MongoDB y Amazon DocumentDB utilicen la opción de segmentación automática de una carga completa paralela.

  • subpartitions-auto: (solo puntos de conexión de Oracle) todas las subparticiones de la tabla o vista se cargan en paralelo. Cada subpartición se asigna a su propio subproceso.

  • partitions-list: todas las particiones especificadas de la tabla o vista se cargan en paralelo. Solo para los puntos de enlace de Oracle, todas las subparticiones especificadas de la tabla o vista se cargan en paralelo. Cada partición y subpartición que especifique se asigna a su propio subproceso. Puede especificar las particiones y subparticiones que se cargan en paralelo por los nombres de particiones (partitions) y los nombres de subparticiones (subpartitions).

  • ranges: todos los segmentos especificados por rango de la tabla, vista o recopilación se cargan en paralelo. Cada segmento de tabla, vista o recopilación que identifique se asigna a su propio subproceso. Especifique estos segmentos por los nombres de las columnas (columns) y los valores de la columnas (boundaries).

    Los SQL puntos finales de Postgre solo admiten este tipo de carga paralela. MongoDB y Amazon DocumentDB como puntos de conexión de origen admiten este tipo de segmentación por rango y el tipo de segmentación automática de una carga completa paralela (partitions-auto).

  • none: la tabla, vista o recopilación se carga en una tarea de un solo subproceso (predeterminada), con independencia de las particiones o subparticiones. Para obtener más información, consulte Creación de una tarea.

El mecanismo para identificar las particiones, subparticiones o segmentos de tabla, vista o recopilación que se van a cargar en paralelo.
number-of-partitions (Opcional) Cuando type es partitions-auto para recopilaciones específicas de un punto de conexión de MongoDB o Amazon DocumentDB, este parámetro especifica el número total de particiones (segmentos) utilizadas para la migración. El valor predeterminado es 16. Especifica el número exacto de particiones que cargar en paralelo.
collection-count-from-metadata (Opcional) Cuando type es partitions-auto para colecciones específicas de un punto final de MongoDB o Amazon DocumentDB y este parámetro está establecido true en AWS DMS , utiliza un recuento de colecciones estimado para determinar el número de particiones. Si este parámetro está establecido enfalse, AWS DMS utiliza el recuento de colecciones real. El valor predeterminado es true. Especifica si se debe utilizar un recuento de recopilaciones estimado o el recuento de recopilaciones real para calcular el número de particiones que se van a cargar en paralelo.
max-records-skip-per-page (Opcional) Cuando type es partitions-auto para recopilaciones específicas de un punto de conexión de MongoDB o Amazon DocumentDB, este es el número de registros que se deben omitir a la vez al determinar los límites de cada partición. AWS DMS utiliza un enfoque de omisión paginada para determinar el límite mínimo de una partición. El valor predeterminado es 10 000. Especifica el número de registros que se van a omitir de una vez al determinar los límites de cada partición. Si se establece un valor relativamente alto con respecto al valor predeterminado, es posible que se agoten los tiempos de espera del cursor y se produzcan errores en las tareas. Si se establece un valor relativamente bajo respecto al valor predeterminado, se realizan más operaciones por página y se ralentiza la carga completa.
batch-size (Opcional) Cuando type es partitions-auto para recopilaciones específicas de un punto de conexión de MongoDB o Amazon DocumentDB, este valor entero limita el número de documentos devueltos en un lote de ida y vuelta. Si el tamaño del lote es cero (0), el cursor utiliza el tamaño máximo de lote definido por el servidor. El valor predeterminado es 0. Especifica el número máximo de documentos devueltos en un lote. Cada lote requiere un viaje de ida y vuelta al servidor.
partitions Cuando type es partitions-list, se trata de una serie de cadenas que especifican los nombres de las particiones que se cargan en paralelo. Los nombres de las particiones que se van a cargar en paralelo.
subpartitions (Solo puntos de enlace de Oracle) Cuando type es partitions-list, se trata de una matriz de cadenas que especifica los nombres de las subparticiones que se van a cargar en paralelo. Los nombres de las subparticiones que se van a cargar en paralelo.
columns Cuando type es ranges, se establece una matriz de cadenas en los nombres de columnas que identifican segmentos de tabla, vista o recopilación basados en rango que se cargan en paralelo. Los nombres de las columnas utilizadas para identificar segmentos de tabla, vista o recopilación basados en rango que se van a cargar en paralelo.
boundaries Cuando type es ranges, una matriz de matrices de valores de columna. Cada matriz de valores de columna contiene valores de columna en la cantidad y el orden especificados por columns. Una matriz de valores de columna especifica el límite superior de un segmento de tabla, vista o recopilación. Cada matriz de valores de columna adicional agrega el límite superior de un segmento de tabla, vista o recopilación adicional. Todos estos segmentos de tabla, vista o recopilación basados en rango se cargan en paralelo. Los valores de columna que identifican particiones de tabla, vista o recopilación basados en rango para cargar en paralelo.
lob-settings Un objeto con los siguientes parámetros:
  • mode— Especifica el modo de gestión de la migración paraLOBs.

  • bulk-max-size— Especifica el tamaño máximo deLOBs, en función de la mode configuración.

Un valor que especifica el LOB manejo de la tabla o vista identificada por la object-locator opción. El LOB manejo especificado anula la LOB configuración de la tarea únicamente para esta tabla o vista. Para obtener más información sobre el uso de los parámetros LOB de configuración, consulteEspecificar LOB la configuración de una tabla o vista seleccionada.
mode

Especifica la gestión de la migración LOBs en la tabla o vista especificada mediante los siguientes valores:

  • limited— (Predeterminado) Este valor establece la migración en LOB modo limitado, en el que todos los datos se LOBs migran en línea junto con los demás tipos de datos de columnas de la tabla o vista. Utilice este valor cuando realice replicaciones en su mayoría pequeñas LOBs (100 MB o menos). Además, especifique un valor bulk-max-size (cero no es válido). Todos los que se migren con un tamaño LOBs superior a bulk-max-size se truncan al tamaño que haya establecido.

  • unlimited— Este valor establece la migración al modo completoLOB. Utilice este valor cuando todos o la mayoría de los objetos LOBs que desee replicar superen 1 GB. Si especifica un bulk-max-size valor de cero, todos LOBs se migrarán en LOB modo completo estándar. En este unlimited modo, todos LOBs se migran por separado de otros tipos de datos de columnas mediante una búsqueda en la tabla o vista de origen. Si especifica un bulk-max-size valor superior a cero, todos LOBs se migran en LOB modo combinado completo. En este tipo de unlimited modo, los valores LOBs superiores a bulk-max-size los que se migran mediante una búsqueda de vistas o tablas de origen, similar al LOB modo completo estándar. De lo contrario, LOBs se migran en línea hasta este tamaño (incluido), de forma similar al LOB modo limitado. No LOB aparece nunca truncado en el unlimited modo, independientemente del formulario que utilice.

  • none— Todas las tablas o vistas LOBs se migran de acuerdo con la configuración de la tareaLOB.

    Para obtener más información sobre la LOB configuración de la tarea, consulteConfiguración de las tareas de los metadatos de destino.

    Para obtener más información sobre cómo migrar LOBs y cómo especificar la LOB configuración de estas tareas, consulteConfigurar el LOB soporte para las bases de datos de origen en una AWS DMS tarea.

El mecanismo utilizado para migrarLOBs.
bulk-max-size El efecto de este valor depende del mode. El tamaño máximo LOBs en incrementos de kilobytes. Especifique esta opción solo si necesita replicar con un tamaño pequeño LOBs o si el punto final de destino no admite un tamaño ilimitado. LOB

Los caracteres comodín en la configuración de las tablas están restringidos

No se admite el uso del carácter de comodín de porcentaje ("%") en las reglas de "table-settings" para las bases de datos de origen, como se muestra a continuación.

{ "rule-type": "table-settings", "rule-id": "8", "rule-name": "8", "object-locator": { "schema-name": "ipipeline-prod", "table-name": "%" }, "parallel-load": { "type": "partitions-auto", "number-of-partitions": 16, "collection-count-from-metadata": "true", "max-records-skip-per-page": 1000000, "batch-size": 50000 } }

Si usa "%" las "table-settings" reglas como se muestra, AWS DMS devuelve la siguiente excepción.

Error in mapping rules. Rule with ruleId = x failed validation. Exact schema and table name required when using table settings rule.

Además, AWS recomienda no cargar un gran número de colecciones grandes mediante una sola tarea conparallel-load. Tenga en cuenta que AWS DMS limita la contención de recursos, así como el número de segmentos cargados en paralelo, según el valor del parámetro de configuración de la tarea MaxFullLoadSubTasks, con un valor máximo de 49.

En su lugar, especifique todas las recopilaciones de la base de datos de origen para las recopilaciones más grandes especificando cada "schema-name" y "table-name" de forma individual. Además, escale verticalmente la migración de forma adecuada. Por ejemplo, ejecute varias tareas en un número suficiente de instancias de replicación para gestionar una gran cantidad de recopilaciones grandes de la base de datos.

Uso de carga paralela para tablas, vistas y recopilaciones seleccionadas

Para acelerar la migración y hacerla más eficiente, puede utilizar la carga paralela para tablas, vistas y recopilaciones relacionales seleccionadas. En otras palabras, puede migrar una tabla, vista o recopilación de segmentación única con varios subprocesos en paralelo. Para ello, AWS DMS divide una tarea de carga completa en subprocesos, y cada segmento de la tabla se asigna a su propio subproceso.

Con este proceso de carga en paralelo, primero puede hacer que varios subprocesos descarguen diversas tablas, vistas y recopilaciones en paralelo desde el punto de conexión de origen. A continuación, puede hacer que varios subprocesos migren y carguen las mismas tablas, vistas y recopilaciones en paralelo al punto de conexión de destino. Para algunos motores de base de datos, puede segmentar las tablas y vistas por las particiones o subparticiones existentes. Para otros motores de bases de datos, puede segmentar AWS DMS automáticamente las colecciones según parámetros específicos (segmentación automática). De lo contrario, puede segmentar cualquier tabla, vista o recopilación por los rangos de valores de columna que especifique.

La carga en paralelo es compatible para los siguientes puntos de enlace de origen:

  • Oracle

  • SQLServidor Microsoft

  • Mi SQL

  • Postgre SQL

  • IBMDb2 LUW

  • SAPAdaptive Server Enterprise () ASE

  • MongoDB (solo admite las opciones de segmentación automática y segmentación por rango de una carga completa paralela)

  • Amazon DocumentDB (solo admite las opciones de segmentación automática y segmentación por rango de una carga completa paralela)

Para los puntos de enlace de MongoDB y Amazon DocumentDB AWS DMS , admite los siguientes tipos de datos para las columnas que son claves de partición para la opción de segmentación de rango de una carga completa paralela.

  • Doble

  • Cadena

  • ObjectId

  • Entero de 32 bits

  • Entero de 64 bits

La carga paralela para su uso con reglas de configuración de tablas se admite para los siguientes puntos de enlace de destino:

  • Oracle

  • SQLServidor Microsoft

  • Mi SQL

  • Postgre SQL

  • Amazon S3

  • SAPAdaptive Server Enterprise () ASE

  • Amazon Redshift

  • MongoDB (solo admite las opciones de segmentación automática y segmentación por rango de una carga completa paralela)

  • Amazon DocumentDB (solo admite las opciones de segmentación automática y segmentación por rango de una carga completa paralela)

  • Db2 LUW

Para especificar el número máximo de tablas y vistas que se pueden cargar en paralelo, utilice el ajuste de tarea MaxFullLoadSubTasks.

Para especificar el número máximo de subprocesos por tabla o vista para los destinos admitidos de una tarea de carga paralela, defina más segmentos mediante los límites entre columnas y valores.

importante

MaxFullLoadSubTasks controla el número de tablas o segmentos de tabla que se van a cargar en paralelo. ParallelLoadThreads controla el número de subprocesos que utiliza una tarea de migración para ejecutar las cargas en paralelo. Estos ajustes son multiplicativos. Por lo tanto, el número total de subprocesos que se utilizan durante una tarea de carga completa es aproximadamente el resultado del valor de ParallelLoadThreads multiplicado por el valor de MaxFullLoadSubTasks (ParallelLoadThreads * MaxFullLoadSubtasks)).

Si crea tareas con un número elevado de subtareas de carga completa y un número elevado de subprocesos de carga en paralelo, la tarea puede consumir demasiada memoria y producir un error.

Para especificar el número máximo de subprocesos por tabla para los destinos de Amazon DynamoDB, Amazon Kinesis Data Streams, Apache Kafka o Amazon Elasticsearch Service, utilice la configuración de tareas de metadatos de destino ParallelLoadThreads.

Para especificar el tamaño del búfer para una tarea de carga paralela cuando se use ParallelLoadThreads, use el ajuste de la tarea de metadatos de destino de ParallelLoadBufferSize.

La disponibilidad y configuración de ParallelLoadThreads y ParallelLoadBufferSize dependen del punto de conexión de destino.

Para obtener más información sobre los ajustes de ParallelLoadThreads y ParallelLoadBufferSize, consulte Configuración de las tareas de los metadatos de destino. Para obtener más información acerca de la opción MaxFullLoadSubTasks, consulte Configuración de tareas de carga completa. Para obtener información específica en puntos de enlace de destino, consulte los temas relacionados.

Para utilizar la carga en paralelo, cree una regla de mapeo de tablas de tipo table-settings con la opción parallel-load. Dentro de la regla table-settings, puede especificar los criterios de segmentación para una única tabla, vista o recopilación que desea cargar en paralelo. Para hacerlo, establezca el parámetro type de la opción parallel-load a una de varias opciones.

Cómo hacerlo depende de cómo desee segmentar la tabla, vista o recopilación para carga paralela:

  • Por particiones (o segmentos): cargue todas las particiones de tabla o vista (o segmentos) existentes con el tipo partitions-auto. También puede cargar solo las particiones seleccionadas con el tipo partitions-list y una matriz de particiones especificada.

    Solo para los puntos de enlace de MongoDB y Amazon DocumentDB, cargue todas las colecciones o las especificadas por segmentos AWS DMS que se calculen automáticamente también con partitions-auto el tipo y los parámetros opcionales adicionales. table-settings

  • (Solo los puntos de conexión de Oracle) Por subparticiones: cargue todas las subparticiones de tablas o vistas existentes con el tipo subpartitions-auto. También puede cargar solamente las subparticiones seleccionadas con el tipo partitions-list y una matriz subpartitions especificada.

  • Por segmentos que defina, cargue los segmentos de tabla, vista o recopilación que defina mediante límites de valor de columna. Para ello, utilice el tipo ranges con las matrices columns y boundaries especificadas.

    nota

    Los SQL puntos finales de Postgre solo admiten este tipo de carga paralela. MongoDB y Amazon DocumentDB como puntos de conexión de origen admiten este tipo de segmentación por rango y el tipo de segmentación automática de una carga completa paralela (partitions-auto).

Para identificar otras tablas, vistas o recopilaciones que desee cargar en paralelo, especifique objetos de table-settings adicionales con las opciones parallel-load.

En los siguientes procedimientos, puede averiguar cómo codificar JSON para cada tipo de carga paralela, desde el más simple hasta el más complejo.

Especificación de todas las particiones de tabla, vista o recopilación o todas las subparticiones de tabla o vista
  • Especifique parallel-load con el tipo partitions-auto o con el tipo subpartitions-auto (pero no ambos).

    Cada tabla, vista o partición (o segmento) o subpartición de recopilación se asigna automáticamente a su propio subproceso.

    Para algunos puntos de conexión, la carga en paralelo incluye particiones o subparticiones solo si ya están definidas para la tabla o vista. Para los puntos finales de origen de MongoDB y Amazon DocumentDB, puede hacer AWS DMS que calculen automáticamente las particiones (o segmentos) en función de parámetros adicionales opcionales. Incluyen number-of-partitions, collection-count-from-metadata, max-records-skip-per-page y batch-size.

Para especificar particiones de tabla o vista, subparticiones o ambas
  1. Especifique parallel-load con el tipo partitions-list.

  2. (Opcional) Para incluir particiones, especifique una matriz de nombres de partición como valor de partitions.

    Cada partición especificada se asigna a continuación a su propio subproceso.

    importante

    Para los puntos de conexión de Oracle, asegúrese de que las particiones y subparticiones no se superpongan al elegirlas para carga paralela. Si utiliza particiones y subparticiones superpuestas para cargar datos en paralelo, se duplican las entradas o se produce un error debido a una infracción de duplicación de la clave principal.

  3. (Opcional), solo para puntos de conexión de Oracle, incluir subparticiones mediante la especificación de una matriz de nombres de subpartición como valor de subpartitions.

    Cada subpartición especificada se asigna a continuación a su propio subproceso.

    nota

    La carga en paralelo incluye particiones o subparticiones solo si ya están definidas para la tabla o vista.

Puede especificar segmentos de tabla o vista como rangos de valores de columna Al hacerlo, tenga en cuenta estas características de las columnas:

  • La especificación de columnas indexadas mejora de manera significativa el rendimiento.

  • Puede especificar hasta 10 columnas.

  • No puede usar columnas para definir los límites de los segmentos con los siguientes tipos de AWS DMS datos:DOUBLE,,, y FLOAT BLOB CLOB NCLOB

  • Los registros con valores nulos no se replican.

Especificación de segmentos de tabla, vista o recopilación como rangos de valores de columna
  1. Especifique parallel-load con el tipo ranges.

  2. Defina un límite entre los segmentos de tabla o vista; para ello, especifique una matriz de nombres de columnas como valor de columns. Repita esta operación con cada columna para la que desea definir un límite entre segmentos de tabla o vista.

    El orden de las columnas es importante. La primera columna es la más importante y la última es la menos importante para definir cada límite, tal como se describe a continuación.

  3. Para definir los rangos de datos de todos los segmentos de la tabla o vista, especifique una matriz de límites como valor de boundaries. Una matriz de límite es una matriz de matrices columna-valor. Para ello, siga estos pasos:

    1. Especifique cada elemento de una matriz de valores de columna como un valor que corresponde a cada columna. Una matriz columna-valor representa el límite superior de cada segmento de tabla o vista que desea definir. Especifique cada columna en el mismo orden en el que la especificó en la matriz columns.

      Introduzca los valores de DATE las columnas en el formato compatible con la fuente.

    2. Especifique cada matriz de valores de columnas como el límite superior, en orden, de cada segmento desde la parte inferior hasta el next-to-top segmento de la tabla o vista. Si existe alguna fila sobre el límite superior que especifique, estas filas completan el segmento superior de la tabla o vista. De este modo, el número de segmentos basados en rango es potencialmente uno más que el número de límites de segmentos en la matriz de límites. Cada uno de estos segmentos basados en rango se asigna a su propio subproceso.

      Todos los datos no nulos se replican, incluso si no define rangos de datos para todas las columnas de la tabla o vista.

    Por ejemplo, supongamos que define tres matrices de valores de columnas para las columnas COL1 y de la siguiente manera. COL2 COL3

    COL1 COL2 COL3
    10 30 105
    20 20 120
    100 12 99

    Ha definido tres límites de segmentos para un total posible de cuatro segmentos.

    Para identificar los rangos de filas que se van a replicar para cada segmento, la instancia de replicación aplica una búsqueda a estas tres columnas para cada uno de los cuatro segmentos. La búsqueda es similar a la siguiente:

    Segmento 1

    Replique todas las filas en las que se cumpla lo siguiente: los primeros valores de dos columnas son inferiores o iguales a sus valores de límite superior de Segmento 1 correspondientes. Además, los valores de la tercera columna son inferiores a su valor de límite superior de Segmento 1.

    Segmento 2

    Replique todas las filas (salvo el Segmento 1) en las que se cumpla lo siguiente: los primeros valores de dos columnas son inferiores o iguales a sus valores de límite superior de Segmento 2 correspondientes. Además, los valores de la tercera columna son inferiores a su valor de límite superior de Segmento 2.

    Segmento 3

    Replique todas las filas (salvo el Segmento 3) en las que se cumpla lo siguiente: los primeros valores de dos columnas son inferiores o iguales a sus valores de límite superior de Segmento 3 correspondientes. Además, los valores de la tercera columna son inferiores a su valor de límite superior de Segmento 3.

    Segmento 4

    Replique todas las filas restantes (excepto las filas Segment 1, 2 y 3).

    En este caso, la instancia de replicación crea una cláusula WHERE para cargar cada segmento tal y como se indica a continuación:

    Segmento 1

    ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))

    Segmento 2

    NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))

    Segmento 3

    NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))

    Segmento 4

    NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))

Especificar LOB la configuración de una tabla o vista seleccionada

Puede establecer la LOB configuración de las tareas para una o más tablas mediante la creación de una regla de mapeo de tablas del tipo table-settings que permita lob-settings utilizar uno o más table-settings objetos.

Los siguientes puntos finales de origen admiten especificar la LOB configuración de las tablas o vistas seleccionadas:

  • Oracle

  • SQLServidor Microsoft

  • Mi SQL

  • Postgre SQL

  • IBMDb2, según la bulk-max-size configuración mode y, se describe a continuación

  • SAPAdaptive Server Enterprise (ASE), en función de la bulk-max-size configuración mode y, tal y como se describe a continuación

Los siguientes puntos finales de destino admiten la especificación de la LOB configuración de las tablas o vistas seleccionadas:

  • Oracle

  • SQLServidor Microsoft

  • Mi SQL

  • Postgre SQL

  • SAPASE, en función de la bulk-max-size configuración mode y, tal y como se describe a continuación

nota

Solo puede usar tipos de LOB datos con tablas y vistas que incluyan una clave principal.

Para usar LOB la configuración de una tabla o vista seleccionada, cree una regla de mapeo de tablas de tipos table-settings con la lob-settings opción. Al hacer esto, se especifica el LOB manejo de la tabla o vista identificada por la object-locator opción. En la regla table-settings, puede especificar un objeto lob-settings con los parámetros siguientes:

  • mode— Especifica el mecanismo para gestionar la LOB migración de la tabla o vista seleccionada de la siguiente manera:

    • limited— El LOB modo limitado por defecto es el modo más rápido y eficiente. Utilice este modo solo si todos los dispositivos LOBs son pequeños (con un tamaño máximo de 100 MB) o si el terminal de destino no admite un LOB tamaño ilimitado. Además, si lo usaslimited, todos LOBs deben tener el tamaño que hayas establecidobulk-max-size.

      En este modo, para una tarea de carga completa, la instancia de replicación migra todos los datos LOBs en línea junto con otros tipos de datos de columnas como parte del almacenamiento de la tabla o vista principal. Sin embargo, la instancia trunca cualquier instancia migrada que supere su bulk-max-size valor al LOB tamaño especificado. Para una tarea de carga de captura de datos de cambio (CDC), la instancia migra toda la instancia LOBs mediante una búsqueda en la tabla de origen, como en el LOB modo completo estándar (consulta lo siguiente).

      nota

      Solo puede migrar vistas para tareas de carga completa.

    • unlimited— El mecanismo de migración para el LOB modo completo depende del valor que establezcas, de la bulk-max-size siguiente manera:

      • LOBModo completo estándar: si se establece en cero, la instancia de replicación bulk-max-size migra toda ella LOBs utilizando el LOB modo completo estándar. Este modo requiere una búsqueda en la tabla o vista de origen para migrar todas las versionesLOB, independientemente del tamaño. Este enfoque suele provocar una migración mucho más lenta que en el LOB modo limitado. Utilice este modo solo si todas o la mayoría de LOBs las unidades son grandes (1 GB o más).

      • LOBModo completo combinado: si se establece bulk-max-size en un valor distinto de cero, este LOB modo completo utiliza una combinación del LOB modo limitado y el LOB modo completo estándar. Es decir, para una tarea de carga completa, si un LOB tamaño está dentro de tu bulk-max-size valor, la instancia migra al modo integrado como LOB en el modo limitado. LOB Si el LOB tamaño es superior a este valor, la instancia migra LOB mediante una tabla de origen o una consulta de consulta como en el modo completo estándar. LOB Para una tarea de carga de captura de datos de cambio (CDC), la instancia migra toda la instancia LOBs mediante una búsqueda en la tabla de origen, como en el LOB modo completo estándar (consulta lo siguiente). Lo hace independientemente del LOB tamaño.

        nota

        Solo puede migrar vistas para tareas de carga completa.

        Este modo da como resultado una velocidad de migración que supone un equilibrio entre el modo más rápido y limitado y el LOB LOB modo completo estándar, más lento. Utilice este modo solo cuando tenga una combinación de modelos pequeños y grandesLOBs, y la mayoría de ellos LOBs sean pequeños.

        Este LOB modo combinado completo solo está disponible para los siguientes puntos finales:

        • IBMDb2 como fuente

        • SAPASEcomo origen o destino

      Independientemente del mecanismo que especifiques para el unlimited modo, la instancia se migra LOBs completamente, sin truncarse.

    • none— La instancia de replicación se migra a LOBs la tabla o vista seleccionada utilizando la configuración de la tarea. LOB Utilice esta opción para comparar los resultados de la migración con y sin la LOB configuración de la tabla o vista seleccionada.

    Si la tabla o vista especificada LOBs se ha incluido en la replicación, puede establecer la configuración de la BatchApplyEnabled tarea para que true solo se utilice limited LOB el modo.

    En algunos casos, puede establecer BatchApplyEnabled en true y BatchApplyPreserveTransaction en false. En estos casos, la instancia se establece BatchApplyPreserveTransaction en true si la tabla o vista tiene Oracle LOBs y los puntos finales de origen y destino son Oracle.

  • bulk-max-size: establezca este valor en un valor cero o no cero en kilobytes, en función del mode, tal como se ha descrito para los elementos anteriores. En modo limited, debe establecer un valor distinto de cero para este parámetro.

    La instancia se convierte LOBs a formato binario. Por lo tanto, para especificar la más grande LOB que necesita replicar, multiplique su tamaño por tres. Por ejemplo, si el tamaño más grande LOB es de 2 MB, bulk-max-size establézcalo en 6000 (6 MB).

Ejemplos de configuración de tablas

A continuación, encontrará algunos ejemplos que muestran el uso de la configuración de tabla.

ejemplo Cargar una tabla segmentada por particiones

En el siguiente ejemplo se carga una tabla SALES en el origen de manera más eficiente cargándola en paralelo en función de todas sus particiones.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-auto" } } ] }
ejemplo Cargar una tabla segmentada por subparticiones

El ejemplo siguiente carga una tabla SALES en el origen de Oracle de forma más eficiente cargándola en paralelo en función de todas sus subparticiones.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "subpartitions-auto" } } ] }
ejemplo Cargar una tabla segmentada por una lista de particiones

En el siguiente ejemplo se carga una tabla SALES en su origen cargándola en paralelo por medio de una lista de particiones particular. Aquí, las particiones especificadas se nombran según valores que empiezan por partes del alfabeto, por ejemplo, ABCD, EFGH, etc.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ] } } ] }
ejemplo Cargar una tabla de Oracle segmentada por una lista de particiones y subparticiones seleccionada

En el siguiente ejemplo se carga una table SALES en su origen de Oracle cargándola en paralelo por una lista de particiones y subparticiones seleccionada. Aquí, las particiones especificadas se nombran según valores que empiezan por partes del alfabeto, por ejemplo, ABCD, EFGH, etc. Las subparticiones especificadas se nombran según valores que empiezan por numerales, por ejemplo, 01234 y 56789.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ], "subpartitions": [ "01234", "56789" ] } } ] }
ejemplo Cargar una tabla segmentada por intervalos de valores de columna

En el siguiente ejemplo se carga una tabla SALES en el origen cargándola en paralelo por segmentos especificados por los rangos de los valores de columna REGION y SALES_NO.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } } ] }

Aquí, se especifican dos columnas por rangos de segmento con los nombres SALES_NO y REGION. Se especifican dos límites con dos conjuntos de valores de columna (["1000","NORTH"] y ["3000","WEST"]).

Estos dos límites, por lo tanto, identifican los tres segmentos de tabla siguientes para cargarlos en paralelo:

Segmento 1

Filas con un valor SALES_NO inferior o igual a 1000 e REGION inferior a "NORTH». En otras palabras, las ventas ascienden a 1000 en la EAST región.

Segmento 2

Filas distintas del segmento 1 con un valor SALES_NO inferior o igual a 3000 e REGION inferior a "WEST». En otras palabras, las ventas superan las 1000 hasta las 3000 en las SOUTH regiones NORTH y.

Segmento 3

Todas las filas restantes que no sean Segment 1 y Segment 2. En otras palabras, las ventas superan las 3000 en la «WEST» región.

ejemplo Cargar dos tablas: una segmentada por intervalos y otra segmentada por particiones

En el siguiente ejemplo se carga una tabla SALES en paralelo por los límites de segmento que identifique. También se carga una tabla ORDERS en paralelo por todas sus particiones, como en ejemplos anteriores.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } }, { "rule-type": "table-settings", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "HR", "table-name": "ORDERS" }, "parallel-load": { "type": "partitions-auto" } } ] }
ejemplo Cargue una tabla LOBs utilizando la LOB configuración de la tarea

En el siguiente ejemplo, se carga una ITEMS tabla en la fuente, incluidas todasLOBs, utilizando su LOB configuración de tareas. La configuración de bulk-max-size de 100 MB se omite y se deja solo para un restablecimiento rápido al modo limited o unlimited.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "none", "bulk-max-size": "100000" } } ] }
ejemplo Carga una tabla LOBs usando el LOB modo limitado

En el siguiente ejemplo, se carga una ITEMS tabla incluida LOBs en el código fuente mediante el LOB modo limitado (el predeterminado) con un tamaño máximo no truncado de 100 MB. Las LOBs que superen este tamaño se truncan a 100 MB. Todos LOBs se cargan en línea con todos los demás tipos de datos de columnas.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "bulk-max-size": "100000" } } ] }
ejemplo Cargue una tabla LOBs utilizando el modo completo LOB estándar

En el siguiente ejemplo, se carga una ITEMS tabla en la fuente, incluidas todas las tablas LOBs sin truncamiento, mediante el modo completo LOB estándar. TodosLOBs, independientemente del tamaño, se cargan por separado de los demás tipos de datos mediante una búsqueda para cada uno de ellos LOB en la tabla de origen.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited", "bulk-max-size": "0" } } ] }
ejemplo Cargue una tabla LOBs utilizando el LOB modo combinado completo

En el siguiente ejemplo, se carga una ITEMS tabla en la fuente, incluidas todas las tablas LOBs sin truncamiento, mediante el modo combinado completoLOB. Todos los datos que tengan LOBs un tamaño inferior a 100 MB se cargan en línea junto con otros tipos de datos, como en el modo limitado. LOB Los datos LOBs de más de 100 MB se cargan por separado de los demás tipos de datos. Esta carga independiente utiliza una búsqueda para cada uno de ellos LOB en la tabla de origen, como en el LOB modo completo estándar.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited", "bulk-max-size": "100000" } } ] }