Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introducción

Para aumentar las capacidades del Dataflow es posible desarrollar etapas personalizadas que se pueden utilizar en los pipelines que se creen con el propio Dataflow del mismo modo que cualquiera de los componentes propios del Dataflow.

...

Para mostrar ejemplos, usaremos el proyecto <github>. Dicho proyecto incluye ejemplos de pruebas para los componentes JDBC del propio Dataflow. De esta forma muestra ejemplos tanto para etapas de tipo origen, de tipo destino y de tipo procesadores.

Configuración del proyecto

El proyecto de ejemplo <github> usa Maven para la gestión de las dependencias. A continuación se describen las depedencias que se han utilizado.

...

Code Block
languagexml
<dependency>
	<groupId>com.streamsets</groupId>
	<artifactId>streamsets-datacollector-api</artifactId>
	<version>${sdc.version}</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>com.streamsets</groupId>
	<artifactId>streamsets-datacollector-sdk</artifactId>
	<version>${sdc.version}</version>
	<scope>test</scope>
</dependency>

Prueba de Orígen

En este ejemplo para probar el origen JDBC arrancamos una base de datos H2 y la poblamos con unas tablas para probar.

...

El ejemplo completo se puede ver en <github>

Prueba de Destino

Para probar la escritura en el destino se ha usado una estrategia similar a la empleada para probar la lectura. Por lo que no vamos a repetir la parte de código similar de configurar la base de datos. Para ver el ejemplo completo se puede ver en <github>.

...

Code Block
connection = DriverManager.getConnection(h2ConnectionString, username, password);
try (Statement statement = connection.createStatement()) {
	ResultSet rs = statement.executeQuery("SELECT COUNT(*) FROM " + fullTableName);
	rs.next();
	assertEquals(1, rs.getInt(1));
}

Prueba de un Processor

Este caso es muy similar al de los Orígenes y los Destinos. La mayor diferencia radica en que se utiliza un componente de tipo processor y un runner de tipo ProcessorRunner.

...