¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo generar grandes conjuntos de datos para SAP HANA de forma eficiente

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 9 Vistas
0
Cargando...

Introducción


Recientemente ejecuté un escenario en la base de datos SAP HANA para el cual necesitaba un conjunto de datos inicial grande para una tabla específica, y otro conjunto de datos delta grande que consistía en eliminaciones, actualizaciones e inserciones en el conjunto de datos inicial. Busqué en Google algo como "generador de datos para HANA" pero no encontré lo que buscaba. Por lo tanto, escribí un procedimiento de base de datos para llenar mi tabla con los datos que necesitaba. Dado que otros podrían encontrar útil el script, amplié el script para facilitar su reutilización. El resultado lo puedes encontrar en este blog.

El procedimiento inserta, actualiza o elimina datos de una sola tabla, utilizando principalmente operaciones basadas en conjuntos para un alto rendimiento. Las inserciones y actualizaciones se basan en la definición de campos de la tabla proporcionada y contienen datos aleatorios. Por ejemplo, para un campo entero, se inserta un valor entero aleatorio, y para un campo basado en caracteres, se inserta una cadena aleatoria de caracteres. El procedimiento utiliza las tablas de metadatos de HANA para recuperar la definición de la tabla. Las actualizaciones o eliminaciones de registros se realizan de forma aleatoria en función de la primera columna de la clave principal.

En mi pequeño sistema de pruebas, logré una velocidad de inserción de 9 millones de registros por minuto para una tabla con solo unos pocos campos. Eso fue mucho más rápido que la primera versión del script, que no era basada en conjuntos.

Cómo ejecutar el procedimiento generador de datos


Sigue los siguientes pasos para generar datos para tu tabla

  1. Descarga el código en este repositorio de Git y cópialo en la consola SQL

  2. Crea una secuencia con la siguiente declaración: "CREATE SEQUENCE GENERATEDATASEQ1". Una secuencia con ese nombre se utiliza en el procedimiento.

  3. Llama al procedimiento utilizando la siguiente declaración:


CALL "GenerateData" (
  IP_SCHEMA_NAME => '<NOMBRE_ESQUEMA>',
  IP_TABLE_NAME => '<NOMBRE_TABLA>',
  IP_INSERT_NUM_RECORDS => <Número de registros a insertar>,
  IP_MAX_STRING_SIZE => <Tamaño máximo de cadena insertada. Las cadenas se limitan automáticamente en la longitud del campo>,                
  IP_DELETE_NUM_RECORDS => <Número de registros a eliminar>,
  IP_UPDATE_NUM_RECORDS => <Número de registros a actualizar>
);

Limitaciones


Ten en cuenta las siguientes limitaciones, o ajusta el código para trabajar en torno a ellas:

  • Solo admite tablas con una clave principal. La clave principal debe contener al menos una columna que pueda contener valores enteros. Los tipos de datos binarios no son compatibles en absoluto.

  • Creado con HANA 2, SPS04, no garantizado que funcione con paquetes de servicios más antiguos.

  • Los valores generados aleatoriamente dificultan la compresión. Por lo tanto, es probable que veas una compresión mínima que no se puede comparar con casos de uso reales.


Ejemplo


Como ejemplo, se crea una tabla con la siguiente declaración:
CREATE SCHEMA GENERATEDATA;
SET SCHEMA GENERATEDATA;
CREATE
            
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?