✒️ABAP HANA / Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA Por Sergio Mendez De La Fuente

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

1) TIPS PRÁCTICOS DESARROLLAR ABAP EN HANA

2) Recomendaciones generales:

2.1) Almacenamiento x columnas v/s por filas:

- Al crear tabla se puede elegir tipo almacenamiento, por defecto es columna.

- Se recomienda que sea por columnas por estos datos se usarán para análisis.

- Además por que permite comprimir mejor las tablas.

- Se aplica a tablas que usan búsqueda por texto.

- Se puede usar almacenar por fila cdo accede a tabla con lenguaje de manipulación de datos, como Update, Insert o Delete. Son las tablas técnicas de SAP, tabla del paquete STSK o al paquete SRFC. Se accede con select single.

- En SAP HANA se especifica tipo almacenamiento en SE11, opciones técnicas, en DB-specific properties.

- En almacenamiento por filas, los datos se guardan uno al lado del otro, permite acceso a toda la fila. Es complicado sacar datos por columna. El pasar de memoria principal a CPU no es tan eficiente como el basado en columnas. La compresión de datos es menos eficiente.

- En almacenamiento por columnas, el contenido de columna se ponen uno a lado del otro en memoria principal, así las operaciones de un dato de columna están todos juntos. Esto beneficia el paso desde memoria principal a CPU. Facilita la compresión eficiente y agregación de datos basado en una columna.

-Los datos comerciales se guardan en columnas, por que sus ventajas superan a sus desventajas.

- Compresión de datos, SAP HANA proporciona técnicas para almacenar por columna, tanto en RAM como en disco. La alta compresión incide en el tiempo de ejecución por que reduce el tiempo de traspaso desde RAM a CPU.

- Técnicas de compresión son muy eficientes respecto al tiempo de ejecución. Se basan en codificación del diccionario, donde contenido de columnas se almacenan como enteros codificados en vector de atributos. Aqui codificación significa pasar traducir contenido de un camp en un entero.

- Para almacenar por columna, HANA crea 2 estructuras de datos, Vector de diccionario y vector de atributo.

- Vector de diccionario :

a) Almacena cada valor de una columna solo una vez.

b) Por ejemplo: columna genero puede tener M o F.

columna ubicación 3 valores Chicago, San y Dallas.

c) Los contenidos se almacenan como dato ordenado.

d) Esto es : 1 para F y 2 para M

2.2) IMPLEMENTACIONES ESPECÍFICAS DE SAP HANA.

- Implementaciones independiente BD : Open SQL y ABAP CDS.

- Implementaciones usan funciones específicas HANA: SQL Nativo y HANA CDS.

- Se usa SAP HANA como cualquier BD, se beneficia de la alta velocidad.

- Desarrollos ejecutables con BD soportadas por SAP -

- Para definir que BD usar, se debe analizar caso a caso.

- Para optimizar una aplicación ABAP existente, se recomienda comenzar con herramientas estándar.

- Siguiente pauta ayuda :

1) PRIMERO OPEN Y LUEGO NATIVE:

  • Usar vistas OPEN SQL y CDS, antes de SQL NATIVE , vistas SAP HANA o procedimientos BD.
  • Funciones abiertas integran mejor a desarrollo ABAP y tiempo de ejecución ABAP
  • Servidor aplicación ABAP valida sus objetos y no necesita usuario adicional SAP HANA.

2) PRIMERO ABAP CDS Y LUEGO HANA CDS.

  • Usar procedimiento BD ABAP en lugar de procedimiento BD HANA.
  • Objetos desarrollos gestionados por ABAP AS se vincula con ciclo de vida ABAP.
  • Se puede sincronizar procedimientos BD ABAP con otros objetos ABAP y transportarlos.

2.3) RECOMENDACIONES PARA LA MIGRACIÓN.

- Una regla básica es que aplicaciones ABAP son totalmente compatibles.

1) CÓDIGO ABAP DEPENDIENTE DE LA BASE DE DATOS:

  • Código ABAP es dependiente de la BD, probar y ajustar para BD SAP HANA si es necesario.
  • Si hay SQL Nativo en código ABAP, como EXEC SQL o hints BD, se deben verificar
  • Si no ejecuta hints BD al migrar a SAP HANA, hay que comprobar ya que pueden ocurrir errores.
  • Un hints de BD, es forzar ejecución indice y dividir carga de trabaja. No funcionan en SAP HANA y no son necesarias debido a arquitectura de BD HANA.

2) CONVERSIÓN TABLAS POOL Y CLUSTER.

  • Al convertir tabla cluster y pool a transparentes, puede generar problemas si confiamos en el ordenamiento de los programas.
  • Esto se debe a que tabla cluster y pool, la interfase de BD siempre realiza un ordenamiento implícito.
  • Se pierde ordenamiento por que no se agrega ORDER BY.

4) COMPORTAMIENTO DEL ORDENAMIENTO:

  • Especificar ORDER BY, para no causar problemas de ordenamiento.
  • SAP HANA ordenamiento implícito no está garantizado por que no es característica documentada de OPEN SQL.
  • Esto se debe a que en SAP HANA es columnar, no tiene índice secundarios y datos se pueden leer en paralelo.

3) PAUTAS DE PERFORMANCE.

Reglas para optimizar de las BD y son:

1) MANTENER CONJUNTO RESULTADO LO MAS PEQUEÑO POSIBLE.

Para SAP HANA no hay cambios en la transferencia de datos.

Se aplica sin cambios y con la misma prioridad para SAP HANA

  • Usando cláusula WHERE, usar solo cdo se necesite restringir.
  • Usando cláusula HAVING
  • - Permite reducir filas seleccionadas.
  • - Se usa con clausula GROUP BY y selecciona cierto grupo.
  • - GROUP BY son lo campos de agrupación.
  • Transfiriendo solo las filas requeridas:
  • - Sacar de base datos solo los reg requeridos.
  • - Los datos que no sirvan, se deben eliminar desde la tabla interna.

2) DATOS TRANSFERIDOS LO MAS PEQUEÑO POSIBLE.

- Es para reducir recursos de BD.

- En SAP HANA se aplica sin cambios.

- Almacenados por fila, bloques de columnas están lejanos.

- Almacenados por columna, cada columna es una estructuras del almacenamiento

- Esta estructura de almacenamiento puede procesar en paralelo.

- El tiempo requerido para varias columnas es ligeramente mayor.

  • Utilizando adición UP TO n ROWS.
  • - Permite restringir número de filas
  • - Permite restringir en un SELECT ...ENDSELECT
  • - FROM scumtom UP TO n ROWS
  • Trabajando con DISTINCT.
  • - Permite evitar las entradas duplicadas en BD
  • - SELECT DISTINC ....
  • Reduciendo el número de columnas.
  • - Seleccionar solo las columnas de BD que se necesitan.
  • - Utilizar SELECT * si todas columnas son necesarias.
  • Utilizando funciones de agregación.
  • - Los cálculos realizar en la BD y transferir el resultado.
  • -SELECT SUM( AA) ..INTO LV_AA
  • Realizar chequeos de existencia eficientemente.
  • - Utilizar solo si necesita realizar un cálculo.
  • - Permite contar cdo hay más de un registro para condiciones.
  • Modificando sólo las columnas necesarias.
  • - Se utiliza la clausula UPDATE y SET.

3) REDUCIR NÚMERO DE EJECUCIONES

  • Se debe mantener el número de accesos los mas bajo.
  • En SELECT usar INTO TABLE
  • Evitar acceso dobel a datos, por ej un SELECT no hacer un DELETE para mismas condiciones.
  • No usar SELECT anidados, usar JOIN si es posible, vistas o FOR ALL ENTRIES.
  • No hacer SELECT dentro de LOOP.
  • Usar Buffer en tablas SAP.

4) MINIMIZAR ESFUERZO BÚSQUEDA

  • Indices de BD en BD clásica
  • Indices consta de campos de BD.
  • Primarios: Campo clave principal, es único y se crea al generar la tabla.
  • Secundarios:pueden ser únicos o no. Se deben crear.
  • - Se usan para optimizar rendimiento
  • - Solo para tablas con acceso de escritura crítico.
  • - Deben ser pocos.
  • - Evitar solapamiento al crearlos.
  • - deben ser campos de uso habitual para búsqueda.
  • - Los campos con + posibilidad de consulta deben ir con operador = al principio del indice.
  • Indice de la base de datos en SAP HANA.
  • - Indices invertidos y compuestos.
  • -Compuestos:
  • - Usan + memoria por que tienen estructura.
  • - Crearse excepciones, cdo columnas juntas hacen una llave.
  • - Invertidos:
  • - Se recomienda usar estos.
  • - Se deben crear para columnas que tengan más selectividad.
  • - Al migrar a SAP HANA ya no se crean índices secundarios en tabla por columnas.

5) REDUCIR CARGA EN BASE DE DATOS

  • Se recomienda reducir carga a DB.
  • BD es recurso central del sistema SAP.
  • Las carga de opreraciones repetidas en BD deben ser pequeñas.
  • Utilizando buffers, estos son importantes como:
  • - Cross disponibles en servidor de aplicaciones y son:
  • objetos, buffer, memoria compartida y buffer tabla.
  • - Disponible en una sesión de usuario y son:
  • Memoria SAp, ABAP y programación en tablas internas
  • Es mas rápido acceder a buffer que a BD
  • Esto se debe a que memoria principal del servidor aplicaciones está en mismo servidor que ejecuta programas ABAP.
  • Acceso a buffer de la tabla es 10 veces + rápido que acceso a datos BD
  • Se debe almacenar en buffer los datos que requieren mucho tiempo para procesar u obtener. Esto edita consultas repetidas u costosas.
  • Ordenado: En BD o en AS ABAP
  • AS ABAP:
  • - Si BD no tiene índice, se debe ordenar en programa ABAP en AS ABAP.
  • En BD.
  • - Si se requiere ordenar muchos datos y obtener un resultado pequeño, se debe ordenar en BD.
  • - Si el ordenamiento es parte del cálculo o hacerlo no muy costosa en
  • Evitar acceso idénticos.
  • Evitar lecturas múltiples de datos idénticos.
  • Reduce acceso a BD y evitar cargas innecesarias a BD.
  • Se utilizan tablas internas o buffers para evitar accesos idénticos.
  • REGLA 5 :Aplicación coherente , evita consumo de CPU y carga reducida en la red.


 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Sergio Mendez De La Fuente, en su ámbito de estudios para el Master ABAP for HANA.

SAP SemiSenior

Sergio Mendez De La Fuente

Profesión: Ingeniero Informática - Chile - Legajo: EM27U

✒️Autor de: 11 Publicaciones Académicas

🎓Egresado del módulo:

Presentación:

Ingeniero informática con especialización en abap y funcional sd.

Certificación Académica de Sergio Mendez

✒️+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!