Documentos de Académico
Documentos de Profesional
Documentos de Cultura
HANA se define como un sistema analítico de alto rendimiento, un sistema RDBMS transaccional completo
proporcionado por SAP que consiste en IMCE (In-Memory Computing Engine) que combina arquitectura
basada en filas y en columnas. Es capaz de realizar OLTP y OLAP en una única caja que incluye innovaciones de
hardware y software, y también se conoce como Sistema de base de datos híbrido.
Innovación de hardware
Innovación de Software
Columnas v / s filas
Particionamiento de tablas
Alta compresión de datos
Procesamiento en paralelo
FILAS COLUMNAS
La elección de la tabla como filas no es tan Si se ve que hay una gran cantidad de datos y
restringida como la columna que no son únicos (por ejemplo, se repite el
grupo de materiales, clase de material .. En
MARA)
Si hay un conjunto de datos donde tiene Se requiere la agregación de datos (tabla de
valores únicos (distintos) ventas)
No se aplica ninguna agregación en la tabla. Siempre seleccionar POCAS columnas en
nuestros programas .
Un esquema es un área dedicada de la base de datos que se puede usar para almacenar objetos de la base de
datos como tablas, paquetes, carpetas, procedimientos. Proporciona un espacio de nombres para los sistemas
que se conectan a la base de datos.
Optimización transparente
a) SELECT QUERY: NetWeaver crea un plan de consulta: Optimizador basado en plan y
Optimizador basado en costo, que decide el orden / secuencia en que se procesará la
consulta.
b) Permite uniones más complejas.
c) Open SQL Enhancement
d) Se extendió la verificación de código estático y el análisis de rendimiento de SQL.
e) Acceso rápido a datos, acceso optimizado a datos
Reutilizar Componentes, ALV, Fuzzy Search
Extensión para abrir SQL
Características específicas de los artifacs relacionados con HANA
Pautas de programación estándar por SAP
Aplicaciones ABAP / Fiori
6. ¿Puntos a considerar al migrar a HANA?
1- Las sentencias SQL nativo no funcionarán, se generará un error de tiempo de ejecución: volcados
EXEC SQL.
ENDSQL.
Si se está realizando una búsqueda basada en columnas que no son pk en datos y no ha utilizado la
cláusula ORDER BY en la declaración SQL, puede generar problemas.
Prio 1, 2, 3
7. Cuáles son las pautas a seguir para el rendimiento de SQL en ABAP en HANA?
DDL (lenguaje de definición de datos): se utiliza principalmente para crear / cambiar / eliminar nuevos
objetos de base de datos.
SE11 - Diccionario de datos que produce automáticamente las declaraciones DDL para usted.
DML - Lenguaje de manipulación de datos: declaraciones que se utilizan para manipular datos.
GRANT, REVOKE …
Los controles Code Inspector / ATC son hallazgos de código estático en comparación con los
estandares. Estos hallazgos no te ayudarán a priorizar tu lista de mejoras. Se Necesitan datos de
rendimiento en tiempo real para encontrar cuál es el primer programa que se corrige.
11. Cómo hacer pruebas de rendimiento en el sistema PRD? ¿Cuáles son los requisitos previos?
Con SAP Netweaver 7.5 SP05 puede realizar un seguimiento del rendimiento en PRD sin mucha
sobrecarga, en dos pasos: primero ejecutar SQLM (tcode): iniciar y detener el seguimiento. 2º: Datos:
SQLMD (tcode) para detectar declaraciónes potencialmente costosa.
CL_ABAP_RUNTIME
Las diferentes formas en que se llama una consulta SQL, se llaman puntos de entrada. P.ej. Programa,
JOBS, módulo de funciones, etc.
Mejoras en ABAP y OPEN SQL: proporciona una abstracción de la base de datos: puede conectarse a
cualquier db, donde la capa de abstracción de la base de datos convierte las sentencias de OPEN SQL
en SQL nativo.
Escape en las variables HOST: por ejemplo, ":" dos puntos, "@"
Lista de campos separada por comas: SELECT col1, col2, col3…, SE tiene que usar el símbolo de
escape para la variable host
Right outer join disponible
Es Posible proporcionar bracketing para joins
Nueva funcionalidad en condición ON de uniones.
El número de tablas que pueden participar en las combinaciones ahora es de 50, antes
podemos incluir solo 9 tablas en una combinación
El máximo de subconsultas también se ha aumentado a 50 desde 9.
Podemos usar la palabra clave USING CLIENT en lugar de CLIENT SPECIFIED
18. Qué son las declaraciones en línea en ABAP en HANA?
Las declaraciones en línea son una nueva forma de declarar variables y Field Symbol en la misma línea
donde se accede a los datos.
Antes 7.40
Con 7.40
DATA(text) = `…`.
Declaracion de workareas
Antes de 7.40
Con 7.40
Antes 7.40
Con 7.40
Declaracion de un result
Antes de 7.40
Con 7.40
Declaracion de parametros
Antes 7.40
DATA a1 TYPE …
DATA a2 TYPE …
oref->meth( IMPORTING p1 = a1
IMPORTING p2 = a2
…)
Con 7.40
IMPORTING p2 = DATA(a2)
… ).
ixml = cl_ixml=>create( ).
stream_factory = ixml->create_stream_factory( ).
document = ixml->create_document( ).
Con 7.40
DATA(ixml) = cl_ixml=>create( ).
DATA(stream_factory) = ixml->create_stream_factory( ).
DATA(document) = ixml->create_document( ).
Field Symbols
ASSIGN … TO FIELD-SYMBOL(<fs>).
Cuando se utiliza una agregación con la sentencia CASE, debe mencionarse en la cláusula GROUPBY
Pipe - |
itab = VALUE #( ( 1 ) ( 2 ) ( 3 ) ).
DBACOCKPIT
Un catálogo es una colección de esquemas de base de datos en HANA. Esquema: agrupación de todos
los objetos de la base de datos, el esquema es un objeto de base de datos obligatorio que permite a las
empresas utilizar la misma base de datos manteniendo los datos de varios sistemas en los que las
restricciones DCL y DB se puede gestionar a nivel de esquema
Usuario de esquema, es decir, el usuario de la base de datos se utiliza para acceder a los datos con
ciertos niveles de autorización.
Modelo de información: el objetivo principal es ocultar los aspectos técnicos para seleccionar datos y
facilitar a los usuarios comerciales el modelado de sus datos, que pueden obtenerse sin conocimiento
técnico, solo el conocimiento funcional de DB es suficiente.
1. Attribute view
2. Analytic view
3. Calculation View
4. Decision Table
La función del optimizador de SQL es procesar y optimizar las consultas SQL enviadas a HANA y
finalmente ejecutadas por el motor SQL en SAP HANA.
30. Cuáles son los otros tres motores que forman parte de SAP HANA?
Motor de cálculo:
32. Cuáles son las diferentes técnicas de crear una vista de cálculo?
Esta vista solo puede tener una medida. No puede tener varias medidas. Básicamente, una Fact table
en una vista analítica. Lo ideal es que solo una Fact Table solo se use con la vista analítica, ya que la
Fact Table requiere un Aggregate.
Pasos para crear un attribute view en HANA Studio, ya que la representación gráfica no está disponible
en ABAP en Eclipse.(textos en Ingles del Menú de HANA STUDIO).
5. Data Preview
El content es una colección de paquetes de desarrollo en los que agregamos diferentes objetos de
desarrollo, incluidos los Modelos de información, que son tipos de datos específicos de HANA.
Proporciona un espacio para nuestro objeto de desarrollo. Una vez que se activa un modelo de
información, crea una vista en la DB de HANA y se almacena dentro del esquema.
Permite transportar todos los objetos de desarrollo lógicamente relacionados. Agrupando artifacts de
desarrollo juntos conocidos como DELIVERY UNIT.
NOTA: Para exponer una Vista / Modelo al usuario, crear un QUERY en la parte superior de su vista y
crea un OData en nuestro QUERY, crear una aplicación fiori para exponerla al usuario ... sap.viz O un
ALV.
View Proxy se usa para extraer los datos de una vista en ABAP. Para exponer un modelo de datos a la
capa de aplicación (ABAP Layer), SAP NW7.4 SP02 en adelante, proporciona una función llamada View
Proxy que permite que los modelos de datos SAP HANA comunícandose con la capa ABAP utilizando
ADT en eclipse y bloquear los objetos en una DELIVERY UNIT para transportar los objetos.
La jerarquía se utiliza para procesar datos basados en la relación de las características de los datos.
1. Jerarquía basada en niveles - Relación entre datos maestros . Grupos, estos grupos pueden provenir
de múltiples tablas.
2. Jerarca padre-hijo: la relación funciona como auto relación. En esto, la tabla tiene una relación consigo
misma y marca una de las columnas como principal y la otra como secundaria. P.ej. Relación de
Gerente con empleados en HR.
Inner Join Este tipo de unión regresa todas las filas cuando hay al menos una coincidencia en ambas tablas
de la base de datos.
Left Outer Este tipo de combinación regreasa todas las filas de la tabla izquierda y las filas coincidentes de la
tabla derecha.
Este tipo de combinación regresa todas las filas de la tabla derecha y las filas coincidentes de la
izquierda.
Right Outer Une las tablas como una combinación interna, adicionalmente incluirá el registro de la tabla en la
dirección para la cual no hay registros en la tabla transaccional.
Smart inner join. Si tenemos 2 tablas conectadas vía ref. la unión y el Query se escribe en el
Attribute View y no incluye la columna del JOIN en el master check table. Básicamente, solo está
seleccionando datos de la tabla principal. La unión será "eliminada" . Cuando también aplica un
filtro en el modelo de datos, la ref. JOIN también actúa como INNER JOIN.
Text Join Este tipo de combinación se utiliza para obtener datos específicos del idioma de las tablas de
texto utilizando una columna de idioma.
Full Outer Joins Este tipo de combinación muestra los resultados de las combinaciones externas izquierda y
derecha y REGRESA todas las filas (coincidentes o no coincidentes) de las tablas en ambos lados
de la cláusula JOIN.
Temporal Join JOIN para el período de tiempo - también conocido como Equi-join. ENTRE el SELECT QUERY. **
aplicable solo en vistas analíticas
Star join Solo se usa en calculation views, se usa para combinar varias fact table directamente.
Spatial Join Usado para unir tabla de coordenadas
Cuando una tabla de datos se conecta a varias dimensiones, utilizamos la vista analítica. Las vistas
analíticas están diseñadas para realizar agregaciones complejas (SUM, MIN, MAX, AVG, COUNT) . Estas
vistas son procesadas por el motor OLAP en SAP HANA. Se utilizan para construir el llamado esquema
STAR. También tiene capacidades para definir columnas calculadas, columnas restringidas, filtros,
parámetros de importación, conversiones complejas.
Es importante que en una vista analítica, marquemos los atributos y las medidas al final en semántica,
ya que la agregación se aplicará solo en la medida.
Para incluir múltiples fact como parte del modelo de datos, podemos ir a la vista de cálculo, estas
vistas son procesadas por el motor de cálculo en SAP HANA. Son adecuados para cálculos más
complejos. Los CV se pueden crear de dos formas: gráficas y secuencias de comandos SQL (para lograr
la paralelización). Las secuencias de comandos SQL en la vista de cálculo se pueden implementar de
dos maneras: funciones CE (para obtener un mejor rendimiento) o SQL puro.
SAP HANA Proporciona funciones listas para usar que se implementan dentro del motor de Cálculos y
se ejecutan en el motor con un rendimiento mejorado para tareas comunes como:
En el caso de las funciones de CE, la llamada / ejecución permanece en el motor de CE, donde, como en el caso
de los scripts de SQL, tiene que salir del motor de Calculo al optimizador de scripts de SQL para ejecutar la
función que conduce a una caída en el rendimiento.
49. Cuáles son los casos en los que puede usar diferentes vistas para diferentes requisitos?
Alternativo a Proxy View es CDS VIEW con la sincronización de los objetos de transporte.
ADBC ,es el estandard conectividad de base de datos ABAP. Se utiliza para ejecutar consultas relacionadas con
HANA directamente utilizando el código ABAP. Las API de ADBC están disponibles desde NW 7.4 para llamar a
las consultas utilizando una interfaz simplificada.
Nuestro sistema no tiene ABAP ADT disponible, no se puede crear un objeto proxy.
Cuando HANA DB se ejecuta como base de datos secundaria (Side Car Scenario)
52. Que es un Decision Table?
Se utiliza un Decisión table para los escenarios de planificación, que permite a los usuarios empresariales
modelar reglas de negocios con menos o ningún conocimiento técnico y aplicar las reglas para ver los
resultados .
Business Rule Management gestiona un conjunto de reglas que cambian con frecuencia en el negocio.
Los lenguajes de programación son productos independientes, generan sus propios ejecutables. El código se
compila y se convierte en código de máquina / código de sistema operativo.
Los lenguajes de script están incrustados en el lenguaje de programación. Se basan en las API del lenguaje de
programación.
Permite al desarrollador escribir lógica de alto rendimiento dentro de la base de datos. Una de las técnicas
utilizadas en el paradigma code-to-data.
SQL SCRIPT se ejecuta y procesa en el motor de cálculo dentro de la base de datos de HANA.
SQL Script es capaz de realizar cálculos complejos.
En SQL Script, se puede declarar una variable local para contener el resultado provisional.
El procedimiento de secuencia de comandos SQL puede devolver más resultados utilizando el
"parámetro de salida", mientras que el procedimiento SQL normal puede devolver solo uno.
En SQL Script, puede definir tipos de tablas globales o locales que se pueden usar como parámetros.
Los contenedores son bloques en los que escribimos la lógica imperativa o declarativa.
63. Cuáles son los diferentes tipos de bloques (contenedores) en SAP HANA?
Cuando declaramos una variable en SAP HANA SQL Script (parámetros escalares), estas variables se inicializan
con un valor NULL. También podemos asignar valor explícitamente durante la creación.
LANGUAGE SQLSCRIPT/R
WITH ENCRYPTION AS
BEGIN
----CODE
END;
CALL <procname>(params);
Cada vez que se crea un nuevo procedimiento, para volver a crear o reemplazar el procedimiento existente,
primero debe eliminarse. Sintaxis para HACER DROP:
71. Cuáles son las diferentes sintaxis en script SQL para diferentes funcionalidades?
If condition
IF <cond> THEN
…..
….
END IF;
Loops – iteration
1. WHILE LOOP
WHILE <condition> DO
END WHILE;
BREAK;
2. FOR LOOP
FOR I IN startIndex..EndIndex DO
….
END FOR;
…..codigo…
ENDTRY.
Sintaxis:
2. SQL_ERROR_CODE <codeno>
---CODIGO
END;
Sintaxis:
Cargar todos los registros de datos en una tabla de parámetros, manipular usando el Cursor - Procesar
registros directamente desde la tabla DB Línea por línea
Los cursores se utilizan para obtener registros de datos fila por fila del resultado de una consulta asignada
al cursor. Siempre enlazamos una consulta al cursor. También es posible parametrizar el cursor.
NOTA !!: si es posible, evitar usar los cursores en HANA DB, ya que HANA no puede optimizar o ejecutar
SQL en modo paralelo.
Un Array es una tabla de una sola columna, una estructura de una dimensión para albergar múltiples
valores del mismo tipo.
DECLARE <array_name> < va_type> ARRAY = ARRAY(val1, val2,…)
La función UNNEST se usa para convertir uno o varios arreglos en una tabla.
Table_variable = UNNEST(:array_var) AS (column_name)
80. Qué son las funciones definidas por el usuario en SAP HANA?
Las funciones definidas por un usuario en SAP HANA son la función de solo lectura que significa que no
podemos realizar ninguna operación DDL y DML (insertar actualización y eliminar) dentro del cuerpo de la
función.
Escalares
El objeto de base de datos más simple para el que puede hacer uso de secuencias de comandos SQL
son las funciones (UDF escalares)
Las UDF escalares permiten definir funciones que toman varios parámetros de entrada y devuelven
valores escalares. Solo se permiten expresiones en el cuerpo de la UDF, por lo que no hay operaciones
de tabla, funciones CE u operaciones con Arrays.
Pueden tener cualquier número de parámetros de entrada (tipos SQL primitivos). Los
parámetros de entrada del tipo de tabla no son compatibles.
Pueden devolver múltiples valores escalares.
Pueden contener expresiones dentro de su cuerpo. Las operaciones de tabla y array no son
compatibles.
Se pueden usar en la lista de campos o en la cláusula WHERE de las instrucciones SELECT,
como las funciones integradas.
Se pueden llamar a través de la asignación directa en otras funciones definidas por el usuario o
procedimientos almacenados
Deben estar libres de efectos secundarios y no admiten ningún tipo de declaración SQL en su
cuerpo.
81. Cosas a tener en cuenta al trabajar con los procedimientos script SQL para CODE Pushdown?
Considerar el manejo del cliente al aplicar cualquier agregación en los datos
Dado que no hay una funcionalidad explícita del concepto LUW en HANA, se debe tener
cuidado al usar scripts SQL
No hay un mecanismo de bloqueo implícito, se debe tener cuidado al trabajar con secuencias
de comandos SQL en la base de datos
82. Cuáles son las desventajas de usar ADBC para LLAMADA DE PROCEDIMIENTOS?
Codificación compleja utilizando la interfaz SQL
Sin comprobación de sintaxis en el momento del diseño.
83. Cuál es el bottom-up en HANA DB al crear proxy?
Cada vez que se crea un modelo de información o un procedimiento en HANA DB, se crea un proxy de la vista
o un proxy de procedimiento STACK ABAP respectivamente. Lo que significa que ya existe un objeto en una
base de datos y para poder comunicarse con el objeto de la base de datos DEL STACK ABAP, debe crear un
proxy.
Este enfoque se denomina enfoque top-down cuando se crea un procedimiento en el STACK ABAP NW 7.4
SP05 que actúa como Maestro para editar, activar y transportar (ciclo de vida) para el objeto del
procedimiento. se solicita por primera vez el procedimiento correspondiente de HANA DB se crea para admitir
el paradigma code-pushdown para HANA DB.
Ventajas:
Comprobación de sintaxis
La gestión del ciclo de vida está completamente controlada por el sistema ABAP.
Desventaja:
…..
….
ENDMETHOD.
Una CDS VIEW es básicamente una abstracción de ABAP a la capa de base de datos que le permite modelar
modelos de datos semánticos (como en HANA DB) en ABAP Stack y en la activación conduce a la creación de
la correspondiente vista de base de datos en DB. Es una mejora de SQL que nos proporciona DDL para definir
modelos de datos semánticamente (tabla / vista) y tipos de definición de usuario en la Base de datos. Es una
extensión de SQL: es decir, DDL DQL y DCL.
El objetivo de la creación del modelo de datos CDS es que todos los productos de SAP lo entenderán, a saber,
SAP Fiori, KPI modeler, BO / BI, BOPF, FPM. IDA Native HANA Apps.
ABAP CDS
HANA CDS
Las anotaciones se utilizan para agregar información de metadatos a la entidad CDS. La anotación especifica
las propiedades y la semántica de la entidad y su comportamiento cuando se consume. Hay anotaciones en la
interfaz de usuario, anotaciones en el modelo de objetos, anotaciones VDM, anotaciones en el entorno, etc.
95. Desde el punto de vista semántico de S / 4 HANA, ¿cuáles son las categorías de vistas de CDS?
Representa la unión donde las dos columnas, donde una de las columnas es una Proyección. Para que esté
disponible en la Vista previa de datos, debe estar expuesta a la base de datos. En S / 4 HANA, la asociación se
indica con un nombre que comienza con un guión bajo. Por ejemplo, _FACTURAS, _PEDIDOS
Las columnas se indican mediante una Proyección de una tabla. Podemos usar $ proyección en CDS para la
misma condición de combinación de asociación.
es posible que las tablas que contienen cantidades muy grandes de datos se muestren en la interfaz de usuario
que se llama Paginación y Consulta automática (no es necesario escribir una instrucción SELECT, ya que el
marco de IDA prepara la consulta, la envía a la base de datos, extrae los datos y los muestra en el ALV. Solo se
debe proporcionar el nombre de la fuente de datos a la IDA , esta fuente de datos puede ser una Vista CDS,
Los resultados de operaciones como clasificación, agrupación o filtrado también tienen un tiempo de
respuesta muy rápido.
Ejemplo Real un un IDA en NETWEAVER 7.4 ,usando una tabla de paso (sin CDS)
LO_ALV_BOTTOM = CL_SALV_GUI_TABLE_IDA=>CREATE( IV_TABLE_NAME = IM_TABLA
IO_GUI_CONTAINER = WO_CNT_BOTTOM ).
DATA(LO_COND_FACTORY) = LO_ALV_BOTTOM->CONDITION_FACTORY( ).
En este ejemplo tenemos una tabla Z IDA con multiples accesos (por usuario) ,por eso se usa CONDITION
FACTORY.
Para consumir el servicio OData basado en CDS, para crear una aplicación Fiori, utilizamos el concepto de
Cloud Connector. Para comunicarnos de manera segura, a través de Internet, mediante S / 4 HANA en las
instalaciones de SAP Cloud Platform, necesitamos Cloud Connector.
3. Iniciar sesión en sap cc -acceso a través de https: // localhost: 8443 /usuario: administrador / gestionar
6. Crear destino:
Sin autentificación, on-premise.
Cliente, webineenabled, sistema, uso.
102. Cuáles son las ventajas de las vistas de CDS sobre AMDP?
Reutilización del Artifact de la base de datos.
Características avanzadas tales como asociaciones y anotaciones.
El manejo del cliente se puede lograr en CDS.
103. Qué es una entidad CDS?
Una entidad de CDS está enriquecida por anotaciones que se utilizan para crear una aplicación Fiori de
extremo a extremo que utiliza estas anotaciones. Para consumir una vista de CDS, en lugar de consumirla en el
programa ABAP, es recomendable consumirla utilizando la "entidad CDS", ya que permite el acceso a los
metadatos.
La función tabla con CDS solo se puede implementar con NetWeaver 7.5 que llama a un AMDP ( ABAP
Managed Data Procedure) ,utilizando una vista CDS. Usando el concepto de interfaz CDS, las llamadas
subyacentes a un AMDP.
Hacer clic con el botón derecho -> Carpeta Core Data Services -> Crear control de acceso -> indicar el ROL
obtenido de la TX PFCG.
Para habilitar Full Text Search, debe haber un índice FULLTEXT que debe estar presente en la tabla, que es una
característica específica de la base de datos.
Sintaxis: CREATE FULLTEXT INDEX <indextextvariable> on <table_name (field)> FAST PREPROCESSOR OFF;
HANA realiza un procesamiento previo para habilitar las búsquedas que distinguen entre mayúsculas y
minúsculas.
También hace un análisis lingüístico de las palabras: encontrar una palabra equivalente con el significado más
cercano.
Acelerar el análisis eliminando la detección de idioma al tener explícitamente el código de idioma en una
columna separada.
Create column table language_detect (ID smallint Primary Key, content nvarchar(50), lang
varchar(2));
FUZZY SEARCH en SAP HANA es una búsqueda tolerante a fallas que permite un nivel de precisión (que se
puede especificar en la cláusula WHERE como porcentaje) y devuelve el valor con una coincidencia
aproximada.