Seguridad, acceso y operaciones para migraciones de Netezza
Este artículo es la tercera parte de una serie de siete partes que proporciona instrucciones sobre cómo migrar de Netezza a Azure Synapse Analytics. Este artículo se centra en los procedimientos recomendados para las operaciones de acceso de seguridad.
Consideraciones sobre la seguridad
En este artículo se describen los métodos de conexión para entornos heredados de Netezza existentes e indica cómo se pueden migrar a Azure Synapse Analytics con un riesgo y un impacto mínimo para el usuario.
Este artículo asume que hay un requisito dedicado a migrar los métodos existentes de conexión y usuario, de rol y de estructura de permisos tal cual. Si no es así, use Azure Portal para crear y administrar un nuevo régimen de seguridad.
Para obtener más información sobre las opciones de seguridad de Azure Synapse, consulte Notas del producto seguridad.
Conexión y autenticación
Sugerencia
La autenticación en Netezza y Azure Synapse puede hacerse "en la base de datos" o a través de métodos externos.
Opciones de autorización de Netezza
El sistema IBM Netezza ofrece varios métodos de autenticación para los usuarios de base de datos de Netezza:
Autenticación local: los administradores de Netezza definen los usuarios de la base de datos y sus contraseñas mediante el comando
CREATE USER
o mediante interfaces administrativas de Netezza. En la autenticación local, use el sistema Netezza para administrar las cuentas de base de datos y las contraseñas, y para agregar y quitar usuarios de la base de datos del sistema. Este método es el método de autenticación predeterminado.Autenticación LDAP: use un servidor de nombres LDAP para autenticar a los usuarios de la base de datos, administrar contraseñas y activar y desactivar cuentas de base de datos. El sistema Netezza usa un módulo de autenticación conectable (PAM) para autenticar a los usuarios en el servidor de nombres LDAP. Microsoft Active Directory se ajusta al protocolo LDAP, por lo que se puede tratar como un servidor LDAP con fines de autenticación LDAP.
Autenticación Kerberos: use un servidor de distribución Kerberos para autenticar a los usuarios de la base de datos, administrar contraseñas y activar y desactivar cuentas de base de datos.
La autenticación es la configuración de todo el sistema. Los usuarios deben autenticarse localmente o mediante el método LDAP o Kerberos. Si elige la autenticación LDAP o Kerberos, cree usuarios con autenticación local por usuario. Recuerde que LDAP y Kerberos no se pueden usar al mismo tiempo para autenticar a los usuarios. El host de Netezza solo admite la autenticación LDAP o Kerberos para inicios de sesión del usuario de base de datos, no para los inicios de sesión del sistema operativo en el host.
Opciones de autorización de Azure Synapse
Azure Synapse admite dos opciones básicas para la conexión y la autorización:
Autenticación de SQL: la autenticación de SQL se realiza a través de una conexión de base de datos que incluye un identificador de base de datos, un id. de usuario y una contraseña más otros parámetros opcionales. Básicamente, esto equivale a las conexiones locales de Netezza.
Autenticación de Microsoft Entra: con la autenticación de Microsoft Entra, puede administrar centralmente las identidades de los usuarios de la base de datos y otros servicios de Microsoft en una ubicación central. La administración central de identificadores ofrece una ubicación única para administrar usuarios de Azure Synapse y simplifica la administración de permisos. Microsoft Entra ID también puede admitir conexiones a los servicios LDAP y Kerberos; por ejemplo, Microsoft Entra ID se puede usar para conectarse a los directorios LDAP existentes si estos deben permanecer en vigor después de la migración de la base de datos.
Usuarios, roles y permisos
Información general
Sugerencia
El planeamiento de alto nivel es esencial para obtener un proyecto de migración correcto.
Tanto Netezza como Azure Synapse implementan el control de acceso a la base de datos a través de una combinación de usuarios, roles (grupos en Netezza) y permisos. Usan las instrucciones SQL estándar CREATE USER
y CREATE ROLE/GROUP
para definir usuarios y roles, así como instrucciones GRANT
y REVOKE
para asignar o quitar permisos a esos usuarios o roles.
Sugerencia
Se recomienda automatizar los procesos de migración para reducir el tiempo transcurrido y el ámbito de los errores.
Conceptualmente, las dos bases de datos son similares y es posible automatizar la migración de identificadores de usuario, grupos y permisos existentes hasta cierto punto. Para migrar estos datos, extraiga la información del grupo y el usuario heredados existente de las tablas del catálogo del sistema de Netezza y genere las instrucciones equivalentes CREATE USER
y CREATE ROLE
que se ejecutarán en Azure Synapse para volver a crear la misma jerarquía de roles y usuarios.
Después de extraer los datos, use las tablas del catálogo del sistema de Netezza para generar instrucciones GRANT
equivalentes para asignar permisos (donde exista una instrucción equivalente). En el diagrama siguiente se muestra cómo usar los metadatos existentes para generar la instancia de SQL necesaria.
Para obtener más detalles, consulte las secciones siguientes.
Usuarios y roles
Sugerencia
Recuerde que la migración de un almacenamiento de datos requiere tablas, vistas e instrucciones de SQL.
La información sobre los usuarios y grupos actuales de un sistema Netezza se mantiene en las vistas de catálogo del sistema _v_users
y _v_groupusers
. Use la utilidad nzsql o herramientas como Netezza Performance, NzAdmin o los scripts de la utilidad de Netezza para enumerar los privilegios de usuario. Por ejemplo, use los comandos dpu
y dpgu
en nzsql para mostrar usuarios o grupos con sus permisos.
Use o edite los scripts de utilidad nz_get_users
y nz_get_user_groups
para recuperar la misma información en el formato necesario.
Consulte directamente las vistas de catálogo del sistema (si el usuario tiene acceso SELECT
a esas vistas) para obtener las listas actuales de usuarios y roles definidos en el sistema. Consulte ejemplos para enumerar usuarios, grupos o usuarios y sus grupos asociados:
-- List of users
SELECT USERNAME FROM _V_USER;
--List of groups
SELECT DISTINCT(GROUPNAME) FROM _V_USERGROUPS;
--List of users and their associated groups
SELECT USERNAME, GROUPNAME FROM _V_GROUPUSERS;
Modifique las instrucciones SELECT
de ejemplo para generar un conjunto de resultados, que sea una serie de instrucciones CREATE USER
y CREATE GROUP
, incluyendo el texto literal adecuado de la instrucción SELECT
.
No hay ninguna manera de recuperar las contraseñas existentes, por lo que debe implementar un esquema para asignar nuevas contraseñas iniciales en Azure Synapse.
Permisos
Sugerencia
Hay permisos de Azure Synapse equivalentes para las operaciones básicas de base de datos, como DML y DDL.
En un sistema Netezza, la tabla del sistema _t_usrobj_priv
contiene los derechos de acceso para los usuarios y los roles. Consulte estas tablas (si el usuario tiene acceso de tipo SELECT
a esas tablas) para obtener las listas actuales de acceso definidas en el sistema.
En Netezza, los permisos individuales se representan como bits individuales dentro de privilegios de campo o g_privileges. Consulte la instrucción SQL de ejemplo en los permisos de grupo de usuarios.
La manera más sencilla de obtener un script DDL que contiene los comandos GRANT
para replicar los privilegios actuales de los usuarios y grupos, es usar los scripts de utilidad de Netezza adecuados:
--List of group privileges
nz_ddl_grant_group -usrobj dbname > output_file_dbname;
--List of user privileges
nz_ddl_grant_user -usrobj dbname > output_file_dbname;
El archivo de salida se puede modificar para generar un script que sea una serie de instrucciones GRANT
para Azure Synapse.
Netezza admite dos clases de derechos de acceso: Administrador y Objeto. Consulte la tabla siguiente para obtener una lista de los derechos de acceso de Netezza y su equivalente en Azure Synapse.
Privilegio de administración | Descripción | Equivalente de Azure Synapse |
---|---|---|
Backup | Permite al usuario crear copias de seguridad. El usuario puede ejecutar copias de seguridad. El usuario puede ejecutar el comando nzbackup . |
1 |
[Create] Aggregate | Permite al usuario crear agregados definidos por el usuario (UDA). El permiso para operar en los UDA existentes se controla mediante privilegios de objeto. | CREATE FUNCTION 3 |
[Create] Database | Permite al usuario crear bases de datos. El permiso para operar en bases de datos existentes se controla mediante privilegios de objeto. | CREATE DATABASE |
[Create] External Table | Permite al usuario crear tablas externas. El permiso para operar en las tablas existentes se controla mediante privilegios de objeto. | CREATE TABLE |
[Create] Function | Permite al usuario crear funciones definidas por el usuario (UDF). El permiso para operar en las UDF existentes se controla mediante privilegios de objeto. | CREATE FUNCTION |
[Create] Group | Permite al usuario crear grupos. El permiso para operar en los grupos existentes se controla mediante privilegios de objeto. | CREATE ROLE |
[Create] Index | Solo para uso del sistema. Los usuarios no pueden crear índices. | CREATE INDEX |
[Create] Library | Permite al usuario crear bibliotecas compartidas. El permiso para operar en las bibliotecas compartidas se controla mediante privilegios de objeto. | 1 |
[Create] Materialized View | Permite al usuario crear vistas materializadas. | CREATE VIEW |
[Create] Procedure | Permite al usuario crear procedimientos almacenados. El permiso para operar en procedimientos almacenados se controla mediante privilegios de objeto. | CREATE PROCEDURE |
[Create] Schema | Permite al usuario crear esquemas. El permiso para operar en los esquemas existentes se controla mediante privilegios de objeto. | CREATE SCHEMA |
[Create] Sequence | Permite al usuario crear secuencias de bases de datos. | 1 |
[Create] Synonym | Permite al usuario crear sinónimos. | CREATE SYNONYM |
[Create] Table | Permite al usuario crear tablas. El permiso para operar en las tablas existentes se controla mediante privilegios de objeto. | CREATE TABLE |
[Create] Temp Table | Permite al usuario crear tablas temporales. El permiso para operar en las tablas existentes se controla mediante privilegios de objeto. | CREATE TABLE |
[Create] User | Permite al usuario crear usuarios. El permiso para operar en los usuarios existentes se controla mediante privilegios de objeto. | CREATE USER |
[Create] View | Permite al usuario crear vistas. El permiso para operar en las vistas existentes se controla mediante privilegios de objeto. | CREATE VIEW |
[Manage Hardware | Permite al usuario realizar las siguientes operaciones relacionadas con el hardware: ver el estado del hardware, administrar las SPU, administrar la topología y la creación de reflejo y ejecutar pruebas de diagnóstico. El usuario puede ejecutar estos comandos: nzhw y nzds. | 4 |
[Manage Security | Permite al usuario ejecutar comandos y operaciones relacionados con las siguientes opciones de seguridad avanzadas: administrar y configurar bases de datos del historial, administrar objetos de seguridad de varios niveles y especificar la seguridad de los usuarios y grupos, administrar almacenes de claves de bases de datos y almacenes de claves para la firma digital de los datos de auditoría. | 4 |
[Manage System | Permite al usuario realizar las siguientes operaciones de administración: iniciar, detener, pausar y reanudar el sistema, anular sesiones, ver el mapa de distribución, las estadísticas del sistema y los registros. El usuario puede usar estos comandos: nzsystem, nzstate, nzstats y nzsession. | 4 |
Restauración | Permite al usuario restaurar el sistema. El usuario puede ejecutar el comando nzrestore. | 2 |
Unfence | Permite al usuario crear o modificar una función definida por el usuario o agregarla para ejecutarse en un modo sin delimitar. | 1 |
Anulación de privilegios de objeto | Descripción | Equivalente de Azure Synapse |
---|---|---|
Anulación | Permite al usuario anular sesiones. Se aplica a grupos y usuarios. | KILL DATABASE CONNECTION |
Modificar | Permite al usuario modificar los atributos de objeto. Se aplica a todos los objetos. | ALTER |
Eliminar | Permite al usuario eliminar filas de tabla. Se aplica solo a las tablas. | Delete |
Anular | Permite al usuario anular objetos. Se aplica a todos los tipos de objeto. | DROP |
Execute | Permite al usuario ejecutar funciones definidas por el usuario, elementos agregados definidos por el usuario o procedimientos almacenados. | Ejecute |
GenStats | Permite al usuario generar estadísticas en tablas o bases de datos. El usuario puede ejecutar el comando GENERATE STATISTICS. | 2 |
Groom | Permite al usuario reclamar espacio en disco para las filas eliminadas u obsoletas, y reorganizar una tabla mediante las claves de organización o migrar los datos de tablas que tienen varias versiones almacenadas. | 2 |
Insertar | Permite al usuario insertar filas en una tabla. Se aplica solo a las tablas. | INSERT |
List | Permite al usuario mostrar un nombre de objeto, ya sea de una lista o de otra manera. Se aplica a todos los objetos. | LISTA |
Seleccionar | Permite al usuario seleccionar (o consultar) las filas de una tabla. Se aplica a tablas y vistas. | SELECT |
Truncate | Permite al usuario eliminar todas las filas de una tabla. Se aplica solo a las tablas. | TRUNCATE |
Actualizar | Permite al usuario modificar las filas de la tabla. Se aplica solo a las tablas. | UPDATE |
Notas de la tabla:
No hay ningún equivalente directo a esta función en Azure Synapse.
Estas funciones de Netezza se controlan automáticamente en Azure Synapse.
La característica
CREATE FUNCTION
de Azure Synapse incorpora la funcionalidad de agregado de Netezza.El sistema o Azure Portal administran automáticamente estas características en Azure Synapse. Consulte la sección siguiente sobre consideraciones operativas.
Consulte Permisos de seguridad de Azure Synapse Analytics.
Consideraciones acerca de las operaciones
Sugerencia
Las tareas operativas son necesarias para que cualquier almacenamiento de datos funcione de forma eficaz.
En esta sección se describe cómo implementar tareas operativas típicas de Netezza en Azure Synapse con un riesgo y un impacto mínimos para los usuarios.
Igual que sucede con todos los productos de almacenamiento de datos, una vez en producción, hay tareas de administración continuas que son necesarias para mantener el sistema funcionando de forma eficaz y así poder proporcionar datos para la supervisión y auditoría. El uso de recursos y el planeamiento de la capacidad para el crecimiento futuro también entran en esta categoría, igual que la copia de seguridad o la restauración de los datos.
Las tareas de administración de Netezza normalmente se dividen en dos categorías:
La administración del sistema, que administra el hardware, las opciones de configuración, el estado del sistema, el acceso, el espacio en disco, el uso, las actualizaciones y otras tareas.
La administración de bases de datos, que administra las bases de datos de usuario y su contenido, la carga de datos, las copias de seguridad, la restauración de datos y el control del acceso a los datos y permisos.
IBM Netezza ofrece varias maneras o interfaces que puede usar para realizar las diversas tareas de administración del sistema y de bases de datos:
Los comandos de Netezza (comandos
nz*
) se instalan en el directorio/nz/kit/bin
en el host de Netezza. En muchos de los comandosnz*
, puede iniciar sesión en el sistema Netezza para acceder a esos comandos y ejecutarlos. En la mayoría de los casos, los usuarios inician sesión como la cuenta de usuarionz
predeterminada, pero puede crear otras cuentas de usuario de Linux en el sistema. Algunos comandos requieren que especifique una cuenta de usuario de base de datos, una contraseña y una base de datos para asegurarse de que tiene permiso para realizar la tarea.Los kits de cliente de la CLI de Netezza empaquetan un subconjunto de los comandos
nz*
que se pueden ejecutar desde los sistemas cliente de Windows y UNIX. Los comandos de cliente también pueden requerir que especifique una cuenta de usuario de base de datos, una contraseña y una base de datos para asegurarse de que tiene permisos administrativos y de objetos de base de datos para realizar la tarea.Los comandos SQL admiten tareas y consultas de administración en una sesión de base de datos de SQL. Puede ejecutar los comandos de SQL desde el intérprete de comandos de Netezza nzsql o a través de las API de SQL como ODBC, JDBC y el proveedor OLE DB. Debe tener una cuenta de usuario de base de datos para ejecutar los comandos de SQL con los permisos adecuados para las consultas y tareas que realice.
La herramienta NzAdmin es una interfaz de Netezza que se ejecuta en estaciones de trabajo del cliente de Windows para administrar sistemas de Netezza.
Aunque conceptualmente las tareas de administración y operaciones de diferentes almacenes de datos son similares, las implementaciones individuales pueden tener puntos diferentes. En general, los productos modernos basados en la nube, como Azure Synapse, tienden a incorporar un enfoque más automatizado y "administrado por el sistema" (en lugar de un enfoque más manual en almacenes de datos heredados, como Netezza).
En las secciones siguientes se comparan las opciones de Netezza y Azure Synapse para diversas tareas operativas.
Tareas de limpieza
Sugerencia
Las tareas de limpieza mantienen un almacén de producción que funciona eficazmente y optimizan el uso de recursos, como el almacenamiento.
En la mayoría de los entornos de almacenamiento de datos heredados, las tareas normales de "limpieza" consumen mucho tiempo. Para recuperar el espacio de almacenamiento en disco, quite versiones anteriores de filas actualizadas o eliminadas o reorganice los datos, archivos de registro o bloques de índice para mejorar la eficacia (GROOM
y VACUUM
en Netezza). La recopilación de estadísticas también es una tarea potencialmente lenta, pero es necesaria después de una ingesta masiva de datos, ya que proporciona al optimizador de consultas datos actualizados en los que basar los planes de ejecución de consultas.
Netezza recomienda recopilar estadísticas de la siguiente manera:
Recopile estadísticas en tablas no rellenadas para configurar el histograma de intervalo que se usa en el procesamiento interno. Esta colección inicial hace que las recopilaciones de estadísticas posteriores sean más rápidas. Asegúrese de volver a recopilar las estadísticas después de agregar los datos.
Recopile estadísticas de la fase de prototipo para las tablas rellenadas por primera vez.
Recopile estadísticas de la fase de producción después de un porcentaje significativo de cambio en la tabla o partición (~10 % de filas). Para grandes volúmenes de valores no únicos, como fechas o marcas de tiempo, puede ser ventajoso realizar una recoleción al 7 %.
Recopile estadísticas de la fase de producción después de crear usuarios y aplicar cargas de consultas reales a la base de datos (hasta tres meses de consulta).
Recopile estadísticas en las primeras semanas después de realizar una actualización o migración durante períodos de bajo uso de CPU.
La base de datos de Netezza contiene muchas tablas de registro en el diccionario de datos que acumulan datos, ya sea automáticamente o después de habilitar determinadas características. Dado que los datos de registro crecen con el tiempo, purgue la información anterior para evitar el uso de espacio permanente. Hay opciones para automatizar el mantenimiento de estos registros disponibles.
Sugerencia
Automatice y supervise las tareas de limpieza en Azure.
Azure Synapse tiene una opción para crear automáticamente estadísticas que puede usar según sea necesario. Realice la desfragmentación de índices y bloques de datos manualmente, de forma programada o automática. Aproveche las funcionalidades nativas integradas de Azure y reduzca el esfuerzo necesario en un ejercicio de migración.
Supervisión y auditoría
Sugerencia
El Portal de rendimiento de Netezza es el método recomendado de supervisión y registro para sistemas de Netezza.
Netezza proporciona el Portal de rendimiento de Netezza para supervisar varios aspectos de uno o varios sistemas de Netezza, como la actividad, el rendimiento, la puesta en cola y el uso de recursos. El Portal de rendimiento de Netezza es una GUI interactiva que permite a los usuarios explorar en profundidad los detalles de bajo nivel de cualquier gráfico.
Sugerencia
Azure Portal proporciona una interfaz de usuario para administrar las tareas de supervisión y auditoría de todos los datos y procesos de Azure.
Igualmente, Azure Synapse proporciona una experiencia de supervisión enriquecida en Azure Portal que proporciona detalles a la carga de trabajo del almacenamiento de datos. Azure Portal es la herramienta recomendada al supervisar el almacenamiento de datos, ya que proporciona períodos de retención configurables, alertas, recomendaciones, y gráficos y paneles personalizables para métricas y registros.
El portal también le permite integrarse con otros servicios de supervisión de Azure, tales como Operations Management Suite (OMS) y Azure Monitor (registros) para ofrecer una experiencia de supervisión holística no solo para el almacenamiento de datos sino también para toda la plataforma Azure Analytics como experiencia de supervisión integrada.
Sugerencia
Las métricas de bajo nivel y en todo el sistema se registran automáticamente en Azure Synapse.
Las estadísticas de uso de recursos para Azure Synapse se registran automáticamente en el sistema. Las métricas de cada consulta incluyen estadísticas de uso de CPU, memoria, caché, E/S y área de trabajo temporal, así como información de conectividad, como intentos de conexión con error.
Azure Synapse proporciona un conjunto de vistas de administración dinámica (DMV). Estas vistas resultan útiles para la solución de problemas y la identificación activas de cuellos de botella de rendimiento con la carga de trabajo.
Para obtener más información, consulte Operaciones y opciones de administración de Azure Synapse.
Alta disponibilidad (HA) y recuperación ante desastres (DR)
Los dispositivos de Netezza son sistemas redundantes, tolerantes a errores, y hay diversas opciones en un sistema de Netezza para habilitar la alta disponibilidad y la recuperación ante desastres.
La adición de IBM Netezza Replication Services para la recuperación ante desastres mejora la tolerancia a errores al extender la redundancia entre redes locales y de área extensa.
IBM Netezza Replication Services protege contra la pérdida de datos mediante la sincronización de datos en un sistema principal (el nodo principal) con datos en uno o varios nodos de destino (subordinados). Estos nodos componen un conjunto de replicación.
Linux de alta disponibilidad (también denominado Linux-HA) proporciona las funcionalidades de conmutación por error de un host de Netezza principal o activo a un host de Netezza secundario o en espera. El demonio principal de administración de clústeres en la solución Linux-HA se denomina Latido. El Latido supervisa los hosts y administra las comprobaciones de comunicación y estado de los servicios.
Cada servicio es un recurso.
Netezza agrupa los servicios específicos de Netezza en el grupo de recursos nps. Cuando el Latido detecta problemas que implican una condición de error de host o la pérdida de servicio en los usuarios de Netezza, el Latido puede iniciar una conmutación por error en el host en espera.
Distributed Replicated Block Device (DRBD) es un controlador de dispositivos de bloque que refleja el contenido de los dispositivos de bloque (discos duros, particiones y volúmenes lógicos) entre los hosts. Netezza usa la replicación DRBD solo en las particiones /nz y /export/home. A medida que se escriben nuevos datos en la partición /nz y la partición /export/home en el host principal, el software DRBD realiza automáticamente los mismos cambios en la partición /nz y /export/home del host en espera.
Sugerencia
Azure Synapse crea instantáneas automáticamente para garantizar tiempos de recuperación rápidos.
Azure Synapse usa instantáneas de base de datos para proporcionar una alta disponibilidad del almacén. Una instantánea de almacenamiento de datos crea un punto de restauración que se puede usar para copiar el almacenamiento de datos o recuperarlo a un estado anterior. Dado que Azure Synapse es un sistema distribuido, una instantánea de almacenamiento de datos consta de muchos archivos que se almacenan en Azure Storage. Las instantáneas capturan los cambios incrementales de los datos almacenados en el almacenamiento de datos.
Sugerencia
Use instantáneas definidas por el usuario para definir un punto de recuperación antes de las actualizaciones de claves.
Sugerencia
Microsoft Azure proporciona copias de seguridad automáticas en una ubicación geográfica independiente para habilitar la recuperación ante desastres.
Azure Synapse toma automáticamente instantáneas a lo largo del día y crea puntos de restauración que están disponibles durante siete días. No se puede cambiar este período de retención. Azure Synapse admite un objetivo de punto de recuperación (RPO) de ocho horas. Un almacenamiento de datos se puede restaurar en la región primaria a partir de cualquiera de las instantáneas tomadas en los últimos siete días.
También se admiten puntos de restauración definidos por el usuario, lo que permite el desencadenamiento manual de instantáneas para crear puntos de restauración de un almacenamiento de datos antes y después de modificaciones de gran tamaño. Esta funcionalidad garantiza que los puntos de restauración sean lógicamente coherentes, lo que proporciona una protección de datos adicional en caso de interrupciones de la carga de trabajo o de errores del usuario para un tiempo de recuperación rápido o de menos de 8 horas.
Además de las instantáneas descritas anteriormente, Azure Synapse también realiza de forma predeterminada una copia de seguridad geográfica una vez al día en un centro de datos emparejado. El RPO para una restauración geográfica es de 24 horas. Puede restaurar la copia de seguridad geográfica en un servidor de cualquier otra región donde se admita Azure Synapse. Una copia de seguridad geográfica garantiza que se pueda restaurar un almacenamiento de datos en caso de que los puntos de restauración de la región primaria no estén disponibles.
Administración de cargas de trabajo
Sugerencia
En un almacenamiento de datos de producción, normalmente hay cargas de trabajo mixtas con diferentes características de uso de recursos que se ejecutan simultáneamente.
Netezza incorpora varias características para administrar cargas de trabajo:
Técnica | Descripción |
---|---|
Reglas del programador | Las reglas del programador influyen en la programación de planes. Cada regla del programador especifica una condición o un conjunto de condiciones. Cada vez que el programador recibe un plan, evalúa todas las reglas del programador de modificación y lleva a cabo las acciones adecuadas. Cada vez que el programador selecciona un plan para su ejecución, evalúa todas las reglas del programador de limitación. El plan solo se ejecuta si hacerlo no supera el límite que haya impuesto una regla del programador de limitación. De lo contrario, el plan quedará en espera. Esto le proporciona una manera de clasificar y manipular planes de una manera que influya en las demás técnicas de WLM (SQB, GRA y PQE). |
Asignación de recursos garantizada (GRA) | Puede asignar un recurso compartido mínimo y un porcentaje máximo de recursos totales del sistema a entidades denominadas grupos de recursos. El programador garantiza que cada grupo de recursos recibe recursos del sistema en proporción a su recurso compartido mínimo. Un grupo de recursos recibe una mayor parte de los recursos cuando otros grupos de recursos están inactivos, pero nunca recibe más de su porcentaje máximo configurado. Cada plan está asociado a un grupo de recursos, y las opciones de la configuración del grupo de recursos determinan qué fracción de los recursos del sistema disponibles deben estar disponibles para procesar el plan. |
Sesgo de consulta corta (SQB) | Los recursos (es decir, las ranuras de programación, la memoria y la cola preferencial) se reservan para consultas cortas. Una consulta corta es una consulta en la que la estimación de costos es menor que un valor máximo especificado (el valor predeterminado es de dos segundos). Con SQB, las consultas cortas se pueden ejecutar incluso cuando el sistema está ocupado procesando otras consultas más largas. |
Ejecución de consultas prioritarias (PQE) | En función de la configuración que establezca, el sistema asigna una prioridad (crítica, alta, normal o baja) a cada consulta. La prioridad depende de factores como el usuario, el grupo o la sesión asociados a la consulta. A continuación, el sistema puede usar la prioridad como base para asignar recursos. |
Azure Synapse registra automáticamente las estadísticas de uso de recursos. Las métricas incluyen estadísticas de uso para CPU, memoria, caché, E/S y área de trabajo temporal para cada consulta. Azure Synapse también registra información de conectividad, como los intentos de conexión con error.
Sugerencia
Las métricas de bajo nivel y de todo el sistema se registran automáticamente en Azure.
En Azur Synapse, las clases de recursos son límites de recursos predeterminados que rigen los recursos de proceso y la simultaneidad de la ejecución de las consultas. Las clases de recursos pueden ayudarle a administrar la carga de trabajo mediante el establecimiento de límites en el número de consultas que se ejecutan simultáneamente y en los recursos de proceso que se asignan a cada consulta. Gracias a esto, la memoria y la simultaneidad se compensan.
Azure Synapse admite estos conceptos básicos de administración de cargas de trabajo:
Clasificación de cargas de trabajo: puede asignar una solicitud a un grupo de cargas de trabajo para establecer niveles de importancia.
Importancia de la carga de trabajo: puede influir en el orden en el que una solicitud obtiene acceso a los recursos. De manera predeterminada, las consultas se liberan desde la cola sobre la base primero en entrar, primero en salir, a medida que los recursos están disponibles. La importancia de las cargas de trabajo permite que las consultas de prioridad más alta reciban recursos de inmediato, independientemente de la cola.
Aislamiento de la carga de trabajo: puede reservar recursos para un grupo de cargas de trabajo, asignar un uso máximo y mínimo para distintos recursos, limitar los recursos que puede consumir un grupo de solicitudes y establecer un valor de tiempo de espera para terminar automáticamente las consultas descontroladas.
La ejecución de cargas de trabajo mixtas puede suponer desafíos de recursos en sistemas ocupados. Un esquema de administración de cargas de trabajo correcto administra los recursos de manera eficaz, garantiza un uso de recursos muy eficaz y maximiza la rentabilidad de la inversión (ROI). La clasificación de la carga de trabajo, la importancia de la carga de trabajo y el aislamiento de la carga de trabajo proporcionan más control sobre cómo la carga de trabajo utiliza los recursos del sistema.
En la guía de administración de cargas de trabajo se describen las técnicas para analizar la carga de trabajo, administrar y supervisar la importancia de la carga de trabajo](../../sql-data-warehouse/sql-data-warehouse-how-to-manage-and-monitor-workload-importance.md) y los pasos para convertir una clase de recurso en un grupo de cargas de trabajo. Use Azure Portal y las consultas de T-SQL en DMV para supervisar la carga de trabajo para asegurarse de que los recursos aplicables se usan de forma eficaz. Azure Synapse proporciona un conjunto de vistas de administración dinámica (DMV) para supervisar todos los aspectos de la administración de cargas de trabajo. Estas vistas resultan útiles para la solución de problemas y la identificación activas de cuellos de botella de rendimiento en la carga de trabajo.
Esta información también se puede usar para planear la capacidad, determinar los recursos necesarios para usuarios adicionales o para cargas de trabajo de la aplicación. Esto también se aplica a la planificación de escalado y reducción verticales de los recursos de ejecución para la compatibilidad rentable de cargas de trabajo "con picos", como las cargas de trabajo con ráfagas temporales e intensas de actividad rodeadas de períodos de actividad poco frecuente.
Para más información sobre la administración de cargas de trabajo en Azure Synapse, consulte Administración de cargas de trabajo con clases de recursos.
Escalado de los recursos de proceso
Sugerencia
Una ventaja importante de Azure es la capacidad de escalar y reducir verticalmente los recursos de proceso de forma independiente y a petición, para controlar las cargas de trabajo máximas de forma rentable.
La arquitectura de Azure Synapse separa el proceso y el almacenamiento, lo que permite que cada uno se escale de forma independiente. Por consiguiente, los recursos de proceso se puede escalar para satisfacer las demandas de rendimiento independientemente del almacenamiento de datos. También puede pausar y reanudar los recursos de proceso. Un beneficio natural de esta arquitectura es que la facturación por proceso y almacenamiento está separada. Si un almacenamiento de datos no está en uso, puede ahorrar en los costos pausando el proceso.
Los recursos de proceso se pueden escalar o reducir verticalmente ajustando la configuración de unidades de almacenamiento de datos para el almacenamiento de datos. La carga y el rendimiento de las consultas pueden aumentar linealmente a medida que agrega más unidades de almacenamiento de datos.
Agregar más nodos de proceso incrementa la capacidad del proceso y la facultad para aprovechar más procesamiento paralelo. A medida que aumenta el número de nodos de proceso, se reduce el número de distribuciones por nodo de proceso, de forma que hay más capacidad de proceso y procesamiento paralelo para las consultas. De forma similar, al reducir las unidades de almacenamiento de datos se reduce el número de nodos de proceso, de forma que se reducen los recursos de proceso para las consultas.
Pasos siguientes
Para obtener más información sobre la visualización y los informes, consulte el siguiente artículo de esta serie: Visualización e informes para migraciones de Netezza.