Compartir vía


Configuración de Amazon RDS para SQL Server en la actividad de copia

En este artículo se describe cómo usar la actividad de copia en una canalización de datos para copiar datos desde Amazon RDS para SQL Server.

Configuración admitida

Para la configuración de cada pestaña en la actividad de copia, vaya a las secciones siguientes respectivamente.

General

Consulte las instruccionesgenerales para configurar la pestaña de parámetros General.

Source

Las siguientes propiedades son compatibles con Amazon RDS para SQL Server en la pestaña Origen de una actividad de copia.

Captura de pantalla que muestra la pestaña de origen y la lista de propiedades.

Se requieren las siguientes propiedades:

  • Tipo de almacén de datos: seleccione Externo.

  • Conexión: seleccione una conexión de Amazon RDS para SQL Server en la lista de conexiones. Si la conexión no existe, cree una nueva conexión de Amazon RDS para SQL Server seleccionando Nuevo.

  • Tipo de conexión: seleccione Amazon RDS para SQL Server.

  • Usar consulta: especifique la forma utilizada para leer los datos. Puede elegir Tabla, Consultao procedimiento almacenado. La siguiente lista describe la configuración de cada opción:

    • Tabla: lee los datos de la tabla especificada. Seleccione el nombre de la entidad en la lista desplegable o seleccione Editar para escribirlo manualmente.

    • Consulta: especifique la consulta SQL personalizada para leer los datos. Un ejemplo es select * from MyTable. O seleccione el icono del lápiz para editar en el editor de código.

      Captura de pantalla que muestra la configuración de la consulta.

    • Procedimiento almacenado: use el procedimiento almacenado que lee los datos de la tabla de origen. La última instrucción SQL debe ser una instrucción SELECT del procedimiento almacenado.

      • Nombre del procedimiento almacenado: seleccione el procedimiento almacenado o especifique manualmente el nombre del procedimiento almacenado al activar la casilla Editar para leer datos de la tabla de origen.

      • Parámetros de procedimiento almacenado: especifique valores para los parámetros de procedimiento almacenado. Los valores permitidos son pares de nombre o valor. Los nombres y las mayúsculas y minúsculas de los parámetros tienen que coincidir con las mismas características de los parámetros de procedimiento almacenado. Puede seleccionar Importar parámetros para obtener los parámetros del procedimiento almacenado.

        Captura de pantalla que muestra la configuración del procedimiento almacenado.

En Avanzado, puede especificar los campos siguientes:

  • Tiempo de espera de consulta (minutos): especifique el tiempo de espera para la ejecución del comando de consulta; el valor predeterminado es de 120 minutos. Si se establece un parámetro para esta propiedad, los valores permitidos son intervalos de tiempo, como "02:00:00" (120 minutos).

  • Nivel de aislamiento: especifica el comportamiento de bloqueo de transacciones para el origen de SQL. Los valores permitidos son: Lectura confirmada, Lectura no confirmada, Lectura repetible, Serializable o Instantánea. Si no se especifica, se utiliza el nivel de aislamiento predeterminado de la base de datos. Consulte IsolationLevel Enum para obtener más detalles.

    Captura de pantalla que muestra la configuración del nivel de aislamiento.

  • Opción de partición: especifique las opciones de creación de particiones de datos que se usan para cargar datos desde Amazon RDS para SQL Server. Los valores permitidos son: Ninguno (predeterminado), Particiones físicas de la tabla, y Rango dinámico. Cuando se habilita una opción de partición (es decir, no Ninguno), el grado de paralelismo para cargar datos simultáneamente desde Amazon RDS para SQL Server se controla mediante la pestaña Grado de paralelismo de copia en la pestaña Configuración de la actividad de copia.

    • Ninguno: elija esta opción de configuración para no usar una partición.

    • Particiones físicas de la tabla: al usar una partición física, la columna de partición y el mecanismo se determinan automáticamente en función de la definición de tabla física.

    • Intervalo dinámico: cuando se usa la consulta con la opción paralela habilitada, se necesita el parámetro de partición de intervalo(?DfDynamicRangePartitionCondition). Consulta de ejemplo: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Nombre de la columna de origen: especifique el nombre de la columna de origen de tipo entero o fecha/hora (int, smallint, bigint, date, smalldatetime, datetime, datetime2 o datetimeoffset) que usa la partición de rangos para la copia paralela. Si no se especifica, el índice o la clave primaria de la tabla se detectan automáticamente y se usan como columna de partición.

        Si usa una consulta para recuperar datos de origen, enlace ?DfDynamicRangePartitionCondition en la cláusula WHERE. Para obtener un ejemplo, vea la sección Copia en paralelo desde una base de datos SQL.

      • Límite superior de la partición: especifique el valor máximo de la columna de partición para la división del rango de partición. Este valor se usa para decidir el intervalo de particiones, no para filtrar las filas de la tabla. Se crean particiones de todas las filas de la tabla o el resultado de la consulta y se copian. Si no se especifica, la actividad de copia detecta automáticamente el valor. Para obtener un ejemplo, vea la sección Copia en paralelo desde una base de datos SQL.

      • Límite inferior de la partición: especifique el valor mínimo de la columna de partición para la división del rango de partición. Este valor se usa para decidir el intervalo de particiones, no para filtrar las filas de la tabla. Se crean particiones de todas las filas de la tabla o el resultado de la consulta y se copian. Si no se especifica, la actividad de copia detecta automáticamente el valor. Para obtener un ejemplo, vea la sección Copia en paralelo desde una base de datos SQL.

  • Columnas adicionales: añada columnas de datos adicionales para almacenar la ruta relativa o el valor estático de los archivos de origen. La expresión se admite para este último.

Tenga en cuenta los siguientes puntos:

  • Si se especifica Consulta para el origen, la actividad de copia ejecuta esta consulta en el origen de Amazon RDS para SQL Server para obtener los datos. También puede especificar un procedimiento almacenado especificando el nombre del procedimiento almacenado y los parámetros de procedimiento almacenado si el procedimiento almacenado toma parámetros.
  • Al usar el procedimiento almacenado del origen para recuperar datos, tenga en cuenta que, si está diseñado para devolver otro esquema cuando se pasa un valor de parámetro diferente, es posible que encuentre un error o vea un resultado inesperado al importar el esquema desde la interfaz de usuario, o bien al copiar datos en la base de datos SQL con la creación automática de tablas.

Asignación

Para la configuración de la pestañaAsignación, vaya a Configurar las asignaciones en la ficha Asignación .

Configuración

Para la configuración de la pestañaConfiguración, vaya a Configurar los otros parámetros en la ficha Configuración .

Copia en paralelo desde una base de datos SQL

En la actividad de copia, el conector de Amazon RDS for SQL Server proporciona una creación de particiones de datos integrada para copiar los datos en paralelo. Puede encontrar las opciones de creación de particiones de datos en la pestaña Origen de la actividad de copia.

Al habilitar la copia con particiones, la actividad de copia ejecuta consultas en paralelo en el origen de Amazon RDS for SQL Server a fin de cargar los datos por particiones. El grado paralelo se controla mediante el grado de paralelismo de copia en la pestaña configuración de la actividad de copia. Por ejemplo, si establece grado de paralelismo de copia en cuatro, el servicio genera y ejecuta simultáneamente cuatro consultas basadas en la configuración y la opción de partición especificadas, y cada consulta recupera una parte de los datos de Amazon RDS para SQL Server.

Se sugiere habilitar la copia en paralelo con la creación de particiones de datos, especialmente si se cargan grandes cantidades de datos de Amazon RDS for SQL Server. Estas son algunas configuraciones sugeridas para diferentes escenarios. Cuando se copian datos en un almacén de datos basado en archivos, se recomienda escribirlos en una carpeta como varios archivos (solo especifique el nombre de la carpeta), en cuyo caso el rendimiento es mejor que escribirlos en un único archivo.

Escenario Configuración sugerida
Carga completa de una tabla grande con particiones físicas. Opción de partición: particiones físicas de la tabla.

Durante la ejecución, el servicio detecta automáticamente las particiones físicas y copia los datos por particiones.

Para comprobar si la tabla tiene una partición física o no, puede hacer referencia a esta consulta.
Carga completa de una tabla grande, sin particiones físicas, aunque con una columna de tipo entero o datetime para la creación de particiones de datos. Opciones de partición: partición por rangos dinámica.
Columna de partición (opcional): especifique la columna usada para crear la partición de datos. Si no se especifica, se usa la columna de clave principal.
Límite de partición superior y límite de partición inferior (opcional): especifique si quiere determinar el intervalo de la partición. No es para filtrar las filas de la tabla, se crean particiones de todas las filas de la tabla y se copian. Si no se especifica, la actividad de copia detecta automáticamente los valores y puede tardar mucho tiempo en función de los valores MIN y MAX. Se recomienda proporcionar límite superior e inferior.

Por ejemplo, si la columna de partición "ID" tiene valores que van de 1 a 100 y establece el límite inferior en 20 y el superior en 80, con la copia en paralelo establecida en 4, el servicio recupera los datos en 4 particiones: identificadores del rango <=20, del rango [21, 50], del rango [51, 80] y del rango >=81, respectivamente.
Carga de grandes cantidades de datos mediante una consulta personalizada, sin particiones físicas, aunque con una columna de tipo entero o date/datetime para la creación de particiones de datos. Opciones de partición: partición por rangos dinámica.
Consulta: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Columna de partición: especifique la columna usada para crear la partición de datos.
Límite de partición superior y límite de partición inferior (opcional): especifique si quiere determinar el intervalo de la partición. No es para filtrar las filas de la tabla, se crean particiones de todas las filas del resultado de la consulta y se copian. Si no se especifica, la actividad de copia detecta automáticamente el valor.

Por ejemplo, si la columna de partición "ID" tiene valores que van de 1 a 100 y establece el límite inferior en 20 y el superior en 80, con la copia en paralelo establecida en 4, el servicio recupera los datos en 4 particiones: identificadores del rango <=20, del rango [21, 50], del rango [51, 80] y del rango >=81, respectivamente.

A continuación se muestran más consultas de ejemplo para distintos escenarios:
• Consulta de la tabla completa:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• Consulta de una tabla con selección de columnas y filtros adicionales de la cláusula where:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Consulta con subconsultas:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Consulta con partición en subconsulta:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Procedimientos recomendados para cargar datos con la opción de partición:

  1. Seleccione una columna distintiva como columna de partición (como clave principal o clave única) para evitar la asimetría de datos.
  2. Si la tabla tiene una partición integrada, use la opción de partición Particiones físicas de tabla para obtener un mejor rendimiento.

Consulta de ejemplo para comprobar la partición física

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id 
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id 
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id 
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id 
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id 
WHERE s.name='[your schema]' AND t.name = '[your table name]'

Si la tabla tiene una partición física, verá "HasPartition" como "yes" como en el caso siguiente.

Resultado de la consulta SQL

Resumen de tabla

Consulte la siguiente tabla para obtener el resumen y más información sobre la actividad de copia de Amazon RDS para SQL Server.

Información de origen

Nombre Descripción Value Obligatorio Propiedad de script JSON
Tipo de almacén de datos El tipo de almacén de datos. Externo /
Connection La conexión al almacén de datos de origen. < su conexión > conexión
Tipo de conexión El tipo de conexión. Seleccione Amazon RDS para SQL Server. Amazon RDS para SQL Server /
Usar consulta La consulta SQL personalizada para leer los datos. • Tabla
• Consulta
• Procedimiento almacenado
/
Tabla La tabla de datos de origen. < nombre de la tabla de destino> No esquema
table
Consultar La consulta SQL personalizada para leer los datos. < la consulta > No sqlReaderQuery
Nombre del procedimiento almacenado Esta propiedad es el nombre del procedimiento almacenado que lee datos de la tabla de origen. La última instrucción SQL debe ser una instrucción SELECT del procedimiento almacenado. <Nombre del procedimiento almacenado> No sqlReaderStoredProcedureName
Parámetro del procedimiento almacenado Estos parámetros son para el procedimiento almacenado. Los valores permitidos son pares de nombre o valor. Los nombres y las mayúsculas y minúsculas de los parámetros tienen que coincidir con las mismas características de los parámetros de procedimiento almacenado. < pares nombre o valor > No storedProcedureParameters
Tiempo de espera de consulta Tiempo de espera para la ejecución del comando de consulta. timespan
(el valor predeterminado es 120 minutos)
No queryTimeout
Nivel de aislamiento Especifica el comportamiento de bloqueo de transacción para el origen de SQL. • Lectura confirmada
• Lectura no confirmada
• Lectura repetible
• Serializable
• Snapshot
No isolationLevel:
• ReadCommitted
• ReadUncommitted
• RepeatableRead
• Serializable
• Snapshot
Opción de partición Las opciones de creación de particiones de datos que se usan para cargar datos desde Amazon RDS para SQL Server. • Ninguno (valor predeterminado)
• Particiones físicas de la tabla
• Intervalo dinámico
No partitionOption:
• Ninguno (valor predeterminado)
• PhysicalPartitionsOfTable
• DynamicRange
Nombre de columna de partición El nombre de la columna de origen de tipo entero o fecha/datetime (int, smallint, bigint, date, smalldatetime, datetime, datetime2 o datetimeoffset) que se usa en la creación de particiones por rangos para la copia en paralelo. Si no se especifica, el índice o la clave primaria de la tabla se detectan automáticamente y se usan como columna de partición. Si usa una consulta para recuperar datos de origen, enlace ?DfDynamicRangePartitionCondition en la cláusula WHERE. <los nombres de columna de partición> No partitionColumnName
Límite superior de partición Valor máximo de la columna de partición para la división del rango de partición. Este valor se usa para decidir el intervalo de particiones, no para filtrar las filas de la tabla. Se crean particiones de todas las filas de la tabla o el resultado de la consulta y se copian. Si no se especifica, la actividad de copia detecta automáticamente el valor. <límite superior de partición> No partitionUpperBound
Límite inferior de partición Valor mínimo de la columna de partición para la división del rango de partición. Este valor se usa para decidir el intervalo de particiones, no para filtrar las filas de la tabla. Se crean particiones de todas las filas de la tabla o el resultado de la consulta y se copian. Si no se especifica, la actividad de copia detecta automáticamente el valor. <límite inferior de partición> No partitionLowerBound
Columnas adicionales Agregue columnas de datos adicionales para almacenar la ruta de acceso relativa o el valor estático de los archivos de origen. La expresión se admite para este último. • Name
• Valor
No additionalColumns:
• nombre
• valor