Hola,
Puedes asignar valores de variables globales en las propiedades de ejecución.
y el archivo debe existir previamente en el directorio especificado.
Gracias,
Faiz
Avalados por :
Hello experts,
Soy nuevo en BODS, pero he utilizado un par de otras herramientas ETL/ELT. Por favor, ayúdenme a responder las siguientes preguntas:
#1. ¿Cuáles son mis opciones (si las hay) para establecer los valores de variables globales dentro de un flujo de datos? ¿Puedo configurarlo en una transformación de consulta directamente (preferiblemente) o a través de una función personalizada, u otra transformación?
#2. ¿Puedo tener un flujo de datos sin una tabla de destino? (Estoy intentando usar un flujo de datos para procesar solo una fila de una tabla de origen, solo para establecer un grupo de variables globales. Si la respuesta es No; ¿cuál es la tabla de destino más fácil de usar, un archivo plano? No quiero usar una tabla de plantilla ya que agrega una tabla temporal a la base de datos; mientras que, con un archivo plano, asumo que no necesita existir previamente (y no se generará en mi flujo de datos de todos modos). ¿Es correcto mi pensamiento? ¿Hay más opciones aquí?
#3. Dentro de un script, usando la llamada sql(), ¿puedo obtener más de una columna en variable(s)? Por ejemplo, la siguiente declaración obtiene una columna en una variable global. Sin embargo, quiero obtener múltiples columnas en variables separadas, en un solo paso. ¿Es posible o no?
$G_Current_SQL_Text = sql('Nombre_Datastore','SELECT Columna_1 FROM mi_tabla WHERE SQL_NO = [$G_Current_SQL_No]');
Antecedentes (si está interesado):
<<Por favor, mire el archivo adjunto - "Proof_Of_Concept.jpg">>
Estoy intentando definir un marco de validación de datos usando BODS. Tengo un montón de SQLs de validación en una tabla de metadatos y hago que BODS los recorra usando un bucle while. Estoy procesando solo una fila (que contiene la declaración SQL) a la vez. Estoy usando una variable global ($G_Current_SQL_Text) en la transformación SQL para ejecutar el SQL y escribir el resultado en una tabla de destino. Sin embargo, como preludio a esto, en la parte inicial dentro del bucle while, estoy usando un script para definir las siguientes variables globales en múltiples pasadas. Quiero reemplazar el script con un flujo de datos; de ahí las preguntas publicadas anteriormente
$G_Total_No_Of_SQLs
$G_Current_SQL_Text
$G_Current_SQL_Datastore
$G_Current_SQL_No_Of_Columns, etc
Gracias de antemano,
Kaushik.
Proof_Of_Concept.jpgHola,
Puedes asignar valores de variables globales en las propiedades de ejecución.
y el archivo debe existir previamente en el directorio especificado.
Gracias,
Faiz
Balakrishna & Dirk,
Gracias por las respuestas rápidas. Ambas respuestas fueron muy útiles. Algunas preguntas de seguimiento:
1. En una función personalizada, ¿podemos asignar dinámicamente el valor a la variable? En otras palabras, ¿es posible
a) ¿Crear solo una función personalizada con dos parámetros de entrada: uno para el nombre de la variable global y otro para el valor asignado?; o
b) ¿Necesito crear una función personalizada para cada variable global a la que tengo que asignar un valor?
2. Con un archivo plano como destino;
a) ¿El archivo debe existir previamente en el directorio especificado; o
b) ¿Se creará un archivo vacío cuando se ejecute el flujo de datos; o
c) No se creará ningún archivo ya que no se escribirán filas en él.
Gracias
Kaushik.
1) Puedes llamar a una Función Personalizada para asignar una Variable Global. En la función, asigna un valor. Pero esta función se llamará para cada registro.
2) Cuando solo tienes un registro, utiliza Script.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute