✒️ABAP HANA / Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA Por Brenda Castillo Domínguez

Selector Alummnos / Empresas

CVOSOFT UNITED STATES OF AMERICA | 17 años de ingeniería dedicados a formación profesional de Consultores SAP | +info

Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA

Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA

Unidad 2: Programación ABAP HANA Avanzada.

Lección 5: Recomendaciones para desarrollar aplicaciones ABAP en SAP HANA.

Audio tip 1: Existen motivos para utilizar todavía el almacenamiento por filas en una tabla, por ejemplo, si se accede a una tabla predominantemente mediante declaraciones en lenguaje de manipulación de datos DML en el tiempo por ejemplo mediante update, insert o delete. Esta no puede ser una tabla de aplicaciones en la que posteriormente deseamos realizar análisis por lo tanto principalmente las tablas técnicas de SAP son elegibles para el almacenamiento por filas. Los ejemplos incluyen tablas para el procesamiento de actualizaciones correspondientes al paquete STSK o para el procesamiento de llamadas a funciones remotas RFC correspondientes al paquete SRFC. Normalmente se accede a estas tablas con un select simple

Audio tip 2: Al diseñar la aplicación debemos considerar las siguientes preguntas.

¿Existen sistemas con un sistema de base de datos diferente en nuestro entorno de trabajo o en el entorno del cliente ?

¿Cuan fundamentales son las funciones específicas de la base de datos para nuestra aplicación ?

¿Esta involucrada la calidad central de la aplicación?

¿El desarrollo en SAP HANA se llamará únicamente a través de aplicaciones basadas en ABAP o también a través de otros canales?

Audio tip 3: Pueden ocurrir problemas cuando asumimos que un ordenamiento determinado es llevado a cabo en la secuencia de un programa ABAP. este es el caso por ejemplo de cuando trabajamos con tablas internas y ejecutamos Binary search la cual tiene como requisito que la tabla interna se encuentre previamente ordenada por el campo o campos a partir de la cual se realizará la búsqueda binaria. Podemos encontrarnos con sorpresas en la lista de salida de datos si derrepente no aparecen en el orden de clasificación deseado. En conclusión no debemos confiar en los ordenamientos implícitos si necesitamos una clasificación específica de los datos cuando accedemos a una base de datos debemos utilizar la adición Order by explicitamente.

Audio tip 4: Aunque la adición Into corresponding fields of selecciona solo las columnas que también están en la tabla interna de destino cuando se especifica * se requiere de un esfuerzo adicional para comparar nombres en la interface de la base de datos por lo tanto esta adición solo debe usarse con moderación y para conjunto de datos de resultados más grandes por que el esfuerzo involucrado en la comparación de nombres puede ser relativamente alto para declaraciones select muy rápidas.

Audio tip 5: Para formular las cláusulas WHERE estas son nuestras principales recomendaciones.

El operador = , el operador EQ y los enlaces & siempre son compatibles de manera eficiente en el índice, es decir, el optimizador para reducir el esfuerzo de entrada salida siempre que sea técnicamente posible. Una lista de IN también cae en esta categoría por que representa en principio un múltiple igual para la columna, por lo tanto debemos utilizar las condiciones EQ e IN siempre que siempre que sea posible. Debemos evitar las condiciones negativas como distinto, NO EQ o NO porque no se pueden admitir de manera eficiente en el índice, si es posible debemos reescribir tales condiciones como condiciones positivas, si esto no es posible aún igual debemos especificar las condiciones en la condición WHERE y no omitirlas por completo. Esta es la única forma en que se seleccionaran los registros de datos requeridos de lo contrario leeremos registros innecesarios que luego deberemos eliminar del programa ABAP lo que contradice la primera regla de oro. si no especificamos todos los campos en el índice debemos asegurarnos de incluir la sección inicial del índice en la condición WHERE de lo contrario el uso de un índice no es posible en muchos casos.

Video " El almacenamiento y compresión de datos en SAP HANA"

En este video vamos a analizar los tipos de almacenamiento disponibles y como se realiza la compresión de los datos en la base de datos de SAP HANA.

En cada Base de datos relacional las entradas de una tabla base de datos deben almacenarse en un determinado diseño de dato independientemente de que si esta representación se realiza en la memoria principal por ejemplo en SAP HANA o siguiendo el enfoque tradicional con un medio físico. Hay dos opciones completamente disponibles para esto.

Disposición de los datos en la memoria principal:

  • Almacenamiento de datos basado en filas.
  • Almacenamiento de datos basado en columnas.

SAP HANA soporta ambos enfoques. Con SAP HANA podemos especificar el enfoque de almacenamiento que se utilizara para cada tabla base de datos ya sea que la creemos en el diccionario de datos o en SAP HANA studio. Para ello, por ejemplo desde el diccionario de datos accedemos a las opciones técnicas (Technical Settings) y visualizamos las propiedades específicas de las base de datos (DB-Specific Properties) Aquí podremos ver el tipo de almacenamiento de cada tabla. Vamos a a analizar un poco los dos enfoques de almacenamiento.

En el almacenamiento de datos basado en filas de SAP HANA todos los datos pertenecientes a una fila se colocan uno al lado de otro, lo que facilita el acceso a todas las filas, sin embargo, acceder a todos los valores de una columna es un poco mas complejo ya que estos valores no se pueden transferir desde la memoria principal a la CPU de manera tan eficiente como el almacenamiento de datos basado en columnas. La compresión de los datos, es decir, como se comprimen igual a los datos en la memoria que explicaremos a continuación también es menos eficiente con este enfoque de almacenamiento.

El almacenamiento de datos basado en columnas no es nada realmente nuevo más bien este tipo de almacenamiento ya se usaba en aplicaciones de almacenamiento de datos y escenarios de análisis en el pasado, sin embargo, en los escenarios transaccionales hasta el momento solo se había utilizado el almacenamiento basado en filas, los contenidos de una columna se colocan uno junto al otro en la memoria principal esto significa que todas las operaciones que accedan a una columna encontraran la información requerida cerca lo que tiene efectos favorables en ele transporte de datos entre la memoria principal y la CPU, sin embargo, si necesitamos una gran cantidad de datos o todos los datos de una fila este enfoque es desventajoso porque esos datos no estan cerca. El almacenamiento de datos basado en columnas también facilita la compresión eficiente y la agregación de datos basados en una columna.

Conclusiones:

  • Como podemos ver ambos enfoques tienen ventajas y desventajas.
  • Los datos comerciales casi siempre se colocan en el almacenamiento basado en columnas. Esto se aplica particularmente si necesitamos analizar grandes cantidades de datos
  • Sin embargo, algunas tablas requieren almacenamiento de datos basado en filas. Estas son principalmente tablas muy pequeñas o muy volátiles, donde el tiempo requerido para los accesos de escritura es más importante que el tiempo requerido para los accesos de lectura. O en tablas donde los accesos de un solo registro ( a través del comando SELECT SINGLE ) son el patrón de acceso principal.

Compresión de los datos.

La Base de datos de SAP HANA proporciona una serie de técnicas de compresión que pueden usarse para los datos en almacenamiento por columnas tanto en la memoria principal como en el almacenamiento persistente. La alta compresión de datos tiene un impacto positivo en el tiempo de ejecución porque reduce la cantidad de datos que deben transferirse desde la memoria principal a la CPU.

Las técnicas de compresión de SAP HANA son muy eficientes con respecto al tiempo de ejecución y pueden proporcionar un factor de compresión promedio de 5 a 10 en comparación con los datos que no se han comprimido. Las técnicas de compresión se basan en la codificación del diccionario donde los contenidos de la columna se almacenas como enteros codificados en el llamado vector de atributos. En este contexto codificación significa traducir el contenido de un campo en un valor entero.

Para almacenar el contenido de una columna en el almacenamiento por columnas, la base de datos de SAP HANA crea un mínimo de dos estructuras de datos:

  • Vector de diccionario
  • Vector de atributo

El vector de diccionario almacena cada valor de una columna solo una vez. Esto significa que la columna género solo contiene los valores "M" y "F" en el vector de diccionario. Para la columna ubicación hay tres valores posibles: Chicago, san francisco y dallas. Los contenidos del vector de diccionario se almacenan como datos ordenados. La posición en el vector de diccionario asigna cada valor a un entero en nuestro ejemplo esto es 1 para el género "F" y 2 para el género "M". En el vector de diccionario para la ubicación el entero 5 significa Chicago el entero 6 Dallas y el entero 7 para San Francisco. Debido a que este valor se puede derivar implícitamente de su posición primer valor, segundo valor, etc. No se requiere almacenamiento adicional.

Los vectores del diccionario se muestran en la mitad superior de la imagen, solo los datos sombreados en gris se almacenas explícitamente en memoria. El vector de atributos ahora solo almacena los valores enteros, la posición en el diccionario, al igual que las bases de datos tradicionales el orden de los registros no esta definido. Por ejemplo el apellido Smith se colocó en el vector de diccionario para los apellidos desde su posición en este vector un valor puede derivarse implícitamente, el valor 9 en nuestro ejemplo, este valor una vez mas ahora siempre se almacena en la posición para el apellido Smith en el vector de atributos para el apellido en nuestro ejemplo este es el séptimo registro de nuestros datos de muestra de la tabla.

Otro ejemplo es la ubicación, San Francisco por ejemplo, que se almacena en la posición 7 del vector de diccionario para la ubicación y aparece para la fila 4 y 6 en el vector de atributo para la ubicación. Los vectores de atributo se muestran en la parte inferior de la figura. En esta figura los tres vectores de atributos se muestran consecutivamente para mostrar que todos los datos también los vectores de diccionario, se almacenan en un flujo de datos en la memoria principal y se direccionan a través de las referencias y compensaciones de la memoria. Aquí solo las secciones sombreadas en gris de la figura se almacenan realmente en la memoria principal: Los números de fila que se muestran debajo de estas secciones no necesitan ningún espacio de almacenamiento y nuevamente se derivan implícitamente de su posición en el vector de atributo, se corresponden con la posición en nuestro ejemplo de la tabla, es decir, el primer registro, el segundo registro, etc.


 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Brenda Castillo Domínguez, en su ámbito de estudios para el Master ABAP for HANA.

SAP Expert


Brenda Castillo Domínguez

Profesión: Ingenieria en Sistemas Computacionales - Mexico - Legajo: HJ67S

✒️Autor de: 187 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Certificación Académica de Brenda Castillo

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA" de la mano de nuestros alumnos.

SAP Master


Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA. Recomendaciones generales para desarrollo ABAP en SAP HANA Se enfatizó la importancia de considerar recomendaciones generales, migración y optimización de programas. Es fundamental comprender las diferencias y cambios respecto a bases de datos tradicionales, especialmente en el contexto de grandes volúmenes de datos y acceso en tiempo real. SAP recomienda siempre usar almacenamiento por columnas salvo razones específicas; esto mejora la eficiencia y compresión de datos. Se presentaron las diferencias entre implementaciones independientes de base de datos (Open SQL, ABAP CDS) y funciones...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert



La búsqueda de textos y el análisis de datos no estructurados en SAP HANA permiten extraer valor de grandes volúmenes de información heterogénea, como documentos, correos, registros sociales o descripciones. Estas capacidades utilizan algoritmos lingüísticos, búsqueda semántica y funciones de minería de texto para identificar patrones, clasificar información y generar conocimiento útil para la toma de decisiones. En este contexto, la programación ABAP HANA avanzada integra técnicas optimizadas que aprovechan la potencia de la base de datos in-memory. Esto incluye el uso de CDS Views, AMDP y procedimientos SQLScript para ejecutar lógica de negocio...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

“FIND SELECT FOR POOL/CLUSTER TAB WITHOUT ORDER BY” Este mensaje significa que en tu código estás haciendo un: SELECT ... FROM [tabla pool o cluster] INTO ... ...sin usar una cláusula ORDER BY, y eso es potencialmente problemático. Pero más allá del ORDER BY, también está el tema de las tablas pool/cluster. ¿Qué son las tablas pool/cluster? Son un tipo antiguo de tablas en SAP: TipoCaracterística Pooled Tables Varias tablas lógicas almacenadas en una única tabla física. Cluster Tables Datos comprimidos de varias tablas almacenados juntos....

Acceder a esta publicación

Creado y Compartido por: Exequiel Eduardo Acevedo / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Tips Practicos importantes al desarrollar aplicaciones ABAP en SAP HANA Pautas de performance: la velocidad de ejecucion de los programas, naturalmente, desempeña un papael crucial en el contexto de SAP HANA Muchos escenarios de uso implican el acceso a grandes conjuntos de datos en tiempo real. Una comprension solida de las pauutas y tecnicas para lograr un rendimiento optimo es escencial. El Almacenamiento por columnas vs Almacenamiento por filas Cuando se crea una tabla BD poder elegir crearla con almacenamiento por columnas (columnar) o por filas. Por defecto la tabla se creará con almacenamiento por columnas (Storage Type: poder elegir entre almacenamiento por columnas, filas o indefinido, por defecto se almacena por columnas)....

Acceder a esta publicación

Creado y Compartido por: Jeferson Jos Pena Curvelo / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA 1. Almacenamiento por columnas vs Almacenamiento por filas Al crear una tabla se puede elegir crearla con almacenamiento por columnas (columnar) o por filas. Por defecto se creará por columnas Se recomienda configurar por columnas, a menos que haya una razón específica para hacerlo por filas El almacenamiento por columnas proporciona mejores propiedades de compresión, lo que aplica muy bien para tablas con gran cantidad de registros 2. Implementaciones específicas de SAP HANA En el desarrollo de ABAP en SAP HANA se tienen dos escenarios: Implementaciones independientes de la base de datos: Por ejemplo utilizando Open...

Acceder a esta publicación

Creado y Compartido por: Sergio Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

Tips prácticos importantes al desarrollar aplicaciones ABAP. Comprensión solida de las pautas y técnicas para lograr un rendimiento óptimo es esencial Recomendaciones generales: Detalles para las migraciones y optimización de los programas ABAP Creación de tablas recomendando el almacenamiento por columnas.(Podrémos analizar grandes conjuntos de datos de forma eficiente y estos así podrán ser utilizados en escenario de análisis, también tendrán más propiedades de compresión, aplica a tablas que se utilizan para búsqueda de texto) Hints de la bbdd tienen el objetivo de forzar la ejecución de un indice y dividir la carga...

Acceder a esta publicación

Creado y Compartido por: Susana Mora

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior


En cuanto a la optimización de rendimiento, hay que familiarizarse con lo que ya trae SAP, estudiarlo y ver si es viable su uso. Hay veces que en funciones estándar te ves falta de optimización, puede ser que sea código que lleva ahí desde vete tú a saber cuando. Por ejemplo, para mostrar el nombre del mes de una fecha determinada en el idioma seleccionado, es tan sencillo como acceder a la tabla T247 que tiene todos los nombres de los meses en todos los idiomas y simplemente hacer un SELECT. Con cuatro líneas lo resuelves: SELECT SINGLE ltx FROM t247 INTO (vl_mes) WHERE spras = sy-langu AND mnr = v_fecha+4(2). IF sy-subrc NE 0. vl_mes = 'XXXXXXXXXX'. ENDIF. Si lo haces mediante la funcion,...

Acceder a esta publicación

Creado y Compartido por: Fernando Morales Del Rosario / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Reglas de oro para la programación de bases de datos Existe un conjunto de 5 reglas cuyo objetivo es optimizar la programación de las bases de datos: 1. Mantener el conjunto de resultados lo más pequeño posible Podemos minimizar el número de filas seleccionadas utilizando varias medidas: Utilizando una cláusula WHERE Debemos leer solo los registros de datos que realmente necesitamos. Podemos no utilizar el WHERE solo si s requieren todos los registros para cada acceso. No utilizar WHERE es problemático para las tablas de base de datos que aumentan con el tiempo porque los volúmenes crecientes de datos se transfieren con el tiempo. Trabajando con la cláusula HAVING Se...

Acceder a esta publicación

Creado y Compartido por: Ricardo Daniel Tovar Barrera

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

Recomendaciones para desarrollar aplicaciones ABAP en SAP HANA ................................................................................................................................................................................................. Recomendaciones Generales para realizar la migración y el desarrollo en SAP HANA. Almacenamiento por columnas vs almacenamiento por filas: Las tablas de base de datos se crearán por defecto con almacenamiento por columnas (es más eficiente para analizar grandes volumentes de datos), aunque se podrá elegir que sea por fila, por columna o indefinido. Implementaciones específicas de SAP HANA: Se siguen dos esceneario: Implementaciones independientes...

Acceder a esta publicación

Creado y Compartido por: Johanna Thaina Rangel Lucero / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Unidad 2: Lección 5 Recomendaciones para desarrollar aplicaciones ABAP en SAP HANA Recomendaciones generales Pautas de Performance Recomendaciones generales 1. Almacenamiento por columnas vs almacenamiento por filas 2. Implementaciones específicas de SAP HANA En el desarrollo de ABAP en SAP HANA, debemos distinguir dos escenarios Implementaciones independientes de la base de datos: por ejemplo Open SQL y ABAP CDS Implementaciones que utilizan funciones específicas de SAP NADA: por ejemplo SQL nativo y AHAN CDS -- Primero Open y luego Native --Primero ABAP CDS y luego HANA CDS 3. Recomendaciones para la migración Una regla básica es que las aplicaciones ABAP son totalmente compatibles...

Acceder a esta publicación

Creado y Compartido por: Alejandra Soto Guerrero

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!