Gestionar pipelines

Después de crear y probar un pipeline, puede controlar un pipeline iniciando, parando o borrando el pipeline. También puede restablecer un pipeline.

Iniciar un pipeline

Después de crear un pipeline, puede iniciar el pipeline.

Cuando se inicia un pipeline, el pipeline se ejecuta continuamente en un trabajo programado. El trabajo programado del pipeline se repite, ya sea por defecto cada 15 minutos o en el intervalo definido con el atributo interval.

  1. Iniciar un pipeline.
    BEGIN
      DBMS_CLOUD_PIPELINE.START_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /

    Por defecto, un trabajo de pipeline comienza inmediatamente, tan pronto como se inicia el pipeline. Para iniciar un trabajo de pipeline más tarde, especifique una fecha o un registro de hora futuros válidos mediante el parámetro start_date.

    Consulte procedimiento START_PIPELINE para obtener más información.

  2. Verifique que el pipeline se ha iniciado.

    Por ejemplo:

    
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    PIPELINE_NAME            STATUS  
    ------------------------ ------- 
    EMPLOYEE_PIPELINE        STARTED

Parada de un pipeline

Utilice STOP_PIPELINE para parar un pipeline. Cuando se para un pipeline, no se programan trabajos futuros para el pipeline.

Por defecto, los trabajos en ejecución se completan al parar un pipeline. Defina el parámetro force en TRUE para terminar cualquier trabajo en ejecución y parar el pipeline inmediatamente.

  1. Pare un pipeline.
    BEGIN
      DBMS_CLOUD_PIPELINE.STOP_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /

    Consulte procedimiento STOP_PIPELINE para obtener más información.

  2. Verifique que el pipeline está parado.
    
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    PIPELINE_NAME            STATUS  
    ------------------------ ------- 
    EMPLOYEE_PIPELINE        STOPPED

Consulte procedimiento STOP_PIPELINE para obtener más información.

Borrado de un pipeline

El procedimiento DROP_PIPELINE borra un pipeline existente.

Si se ha iniciado un pipeline, se debe parar para que se pueda borrar el pipeline. Consulte procedimiento STOP_PIPELINE para obtener más información.

Para borrar un pipeline iniciado, defina el parámetro force en TRUE para terminar cualquier trabajo en ejecución y borrar el pipeline inmediatamente

  1. Borrar un pipeline.
    BEGIN
      DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /
  2. Verifique que el pipeline se ha borrado.
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    No rows selected

Consulte procedimiento DROP_PIPELINE para obtener más información.

Restablecer un pipeline

Utilice la operación de restablecimiento de pipeline para borrar el registro del pipeline al estado inicial.

Note:

Opcionalmente, puede utilizar el pipeline de restablecimiento para depurar los datos de la tabla de base de datos asociada a un pipeline de carga o para eliminar archivos del almacén de objetos para un pipeline de exportación. Normalmente, esta opción se utiliza al probar un pipeline durante el desarrollo del pipeline.

El restablecimiento del pipeline funciona de la siguiente manera:

  • Pipeline de carga: en el caso de un pipeline de carga, al restablecer el pipeline se borra el registro de los archivos que carga el pipeline. Cuando llama a START_PIPELINE o a RUN_PIPELINE_ONCE después de restablecer un pipeline de carga, el pipeline repite la carga de datos e incluye todos los archivos presentes en la ubicación del almacén de objetos.

    Cuando purge_data se define en TRUE, el procedimiento trunca los datos de la tabla de base de datos.

  • Exportar pipeline: para un pipeline de exportación, al restablecer el pipeline se borran los últimos datos con seguimiento de la tabla de base de datos. Cuando llama a START_PIPELINE o a RUN_PIPELINE_ONCE después de restablecer un pipeline de exportación, el pipeline repite la exportación de datos de la tabla o consulta.

    Cuando purge_data se define en TRUE, el procedimiento suprime los archivos existentes en la ubicación del almacén de objetos especificada con el atributo location.

Para restablecer un pipeline:

  1. Pare el pipeline que desea restablecer.

    Un pipeline de datos debe estar en estado parado para restablecerlo. Consulte procedimiento STOP_PIPELINE para obtener más información.

  2. Restablezca el pipeline.
    BEGIN
         DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
            pipeline_name => 'EMPLOYEE_PIPELINE',
            purge_data => TRUE);
    END;
    /

    Utilice solo el parámetro purge_data con el valor TRUE si desea borrar datos en la tabla de base de datos, para un pipeline de carga o borrar archivos en el almacén de objetos para un pipeline de exportación. Normalmente, esta opción se utiliza al probar un pipeline durante el desarrollo del pipeline.

    Consulte procedimiento RESET_PIPELINE para obtener más información.

Supervisión y solución de problemas de pipelines

Todos los pipelines creados se registran en las vistas DBMS_CLOUD_PIPELINE.

Ver información de estado de pipeline

Compruebe el estado del pipeline y obtenga otra información sobre el pipeline mediante las vistas USER_CLOUD_PIPELINES o DBA_CLOUD_PIPELINES. Por ejemplo, la siguiente sentencia SELECT con un predicado de cláusula WHERE en pipeline_name muestra que MY_TREE_DATA es un pipeline de carga y que se ha iniciado el pipeline:

SELECT pipeline_name, pipeline_type, status FROM USER_CLOUD_PIPELINES
   WHERE pipeline_name = 'MY_TREE_DATA';


PIPELINE_NAME PIPELINE_TYPE STATUS  
------------- ------------- ------- 
MY_TREE_DATA  LOAD          STARTED

Consulte DBMS_CLOUD_PIPELINE Views para obtener más información.

Ver atributos de pipeline

Los atributos de pipeline se pueden supervisar consultando las vistas USER_CLOUD_PIPELINE_ATTRIBUTES o DBA_CLOUD_PIPELINE_ATTRIBUTES. Consulte estas vistas para ver la información de atributos de pipeline.

Por ejemplo:

SELECT pipeline_name, attribute_name, attribute_value FROM user_cloud_pipeline_attributes
     WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_NAME ATTRIBUTE_NAME  ATTRIBUTE_VALUE                                                                   
------------- --------------- --------------------------------------------------------------------------------- 
MY_TREE_DATA  credential_name DEF_CRED_OBJ_STORE                                                                
MY_TREE_DATA  format          {"type": "csv"}                                                                   
MY_TREE_DATA  interval        20                                                                                
MY_TREE_DATA  location        https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace/b/treetypes/o/ 
MY_TREE_DATA  priority        high                                                                              
MY_TREE_DATA  table_name      TREES

Consulte DBMS_CLOUD_PIPELINE Views para obtener más información.

Ver historial de pipeline

Las vistas USER_CLOUD_PIPELINE_HISTORY y DBA_CLOUD_PIPELINE_HISTORY muestran el estado de los trabajos en ejecución. Utilice las vistas del historial de pipeline para controlar el estado de un pipeline y detectar fallos en un pipeline en ejecución.

Por ejemplo:

SELECT pipeline_id, pipeline_name, status, error_message  FROM user_cloud_pipeline_history      
     WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_ID PIPELINE_NAME STATUS    ERROR_MESSAGE 
----------- ------------- --------- ------------- 
          7  MY_TREE_DATA SUCCEEDED

Consulte DBMS_CLOUD_PIPELINE Views para obtener más información.

Tabla de estado de pipeline: Supervisión adicional para pipelines de carga

La tabla de estado de pipeline muestra cada nombre de archivo y su estado para un pipeline de carga. La columna STATUS_TABLE de DBA_CLOUD_PIPELINES y USER_CLOUD_PIPELINES muestra el nombre de la tabla de estado.

Por ejemplo, la siguiente sentencia SELECT con un predicado de cláusula WHERE en pipeline_name muestra el nombre de la tabla de estado de un pipeline:

SELECT pipeline_name, status_table FROM user_cloud_pipelines
   WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_NAME STATUS_TABLE
------------- --------------------
MY_TREE_DATA  PIPELINE$9$41_STATUS

Consulte la tabla de estado para ver información sobre el pipeline, incluido lo siguiente:

  • El número de error relevante y el mensaje de error se registran en la tabla de estado si falla una operación en un archivo específico.

  • Para las operaciones de pipeline finalizadas, el tiempo necesario para cada operación se puede calcular mediante los valores START_TIME y END_TIME informados.

Por ejemplo, a continuación se muestra que la operación de carga de dos archivos falló y se completó una:

SELECT id, name, status, error_code, error_message, sid FROM PIPELINE$9$41_STATUS;

ID NAME       STATUS    ERROR_CODE ERROR_MESSAGE                      SID 
-- ---------- --------- ---------- -------------------------------- ----- 
 1 trees1.txt FAILED         30653 ORA-30653: reject limit reached  18070 
 2 trees2.txt FAILED         30653 ORA-30653: reject limit reached  18070 
 3 trees3.txt COMPLETED                                             18070 

Pipelines para cargar datos, donde pipeline_type es 'LOAD', reserve un ID que se muestra en USER_LOAD_OPERATIONS y en DBA_LOAD_OPERATIONS. El valor ID de estas vistas se asigna a OPERATION_ID del pipeline en USER_CLOUD_PIPELINES y DBA_CLOUD_PIPELINES.

Para obtener más información sobre un pipeline de carga, consulte OPERATION_ID del pipeline:

SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
     WHERE PIPELINE_NAME = 'MY_TREE_DATA';

PIPELINE_NAME OPERATION_ID 
------------- ------------ 
MY_TREE_DATA            41

A continuación, consulte USER_LOAD_OPERATIONS o DBA_LOAD_OPERATIONS con un predicado de cláusula WHERE en la columna ID (mediante el valor OPERATION_ID).

Por ejemplo:

SELECT ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, STATUS_TABLE FROM USER_LOAD_OPERATIONS
     WHERE ID = 41;

ID TYPE     LOGFILE_TABLE     BADFILE_TABLE     STATUS_TABLE
-- -------- ----------------- ----------------- --------------------
41 PIPELINE PIPELINE$9$41_LOG PIPELINE$9$41_BAD PIPELINE$9$41_STATUS

Esta consulta muestra ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE si existe y STATUS_TABLE. Puede ver estas tablas para obtener información adicional sobre la carga de pipeline.

Detalles de tabla de estado de pipeline

Columna Tipo de dato Descripción
ID NUMBER Número único asignado al pipeline.
NAME VARCHAR2(4000) Nombre del pipeline.
BYTES NUMBER Bytes
CHECKSUM VARCHAR2(128) Total de Control
LAST_MODIFIED TIMESTAMP(6) WITH TIME ZONE Hora de última modificación del pipeline.
STATUS VARCHAR2(30) El valor STATUS es uno de los siguientes:
  • COMPLETED: la operación de archivo ha terminado correctamente.
  • FAILED: fallo en la operación de archivo. Se puede intentar un reintento dos veces.
  • PENDING: la operación de archivo aún no se ha iniciado.
  • RUNNING: la operación de archivo está actualmente en curso.
  • SKIPPED: se ha saltado la operación de archivo.
ERROR_CODE NUMBER Código de error
ERROR_MESSAGE VARCHAR2(4000) Mensaje de error
START_TIME TIMESTAMP(6) WITH TIME ZONE Hora de inicio del pipeline.
END_TIME TIMESTAMP(6) WITH TIME ZONE Hora de finalización del pipeline.
SID NUMBER

La sesión SID ySERIAL# indican la sesión de trabajo que estaba ejecutando la operación de carga de pipeline.

SERIAL# NUMBER

La sesión SID ySERIAL# indican la sesión de trabajo que estaba ejecutando la operación de carga de pipeline.

ROWS_LOADED NUMBER Número de filas cargadas.
OPERATION_ID NUMBER

Reservado para uso posterior.

Archivo log de pipeline y tablas de archivos incorrectos

Para obtener el archivo log y los nombres de archivo incorrectos para un pipeline de carga, consulte OPERATION_ID del pipeline. Por ejemplo:

SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
     WHERE PIPELINE_NAME = 'MY_TREE_DATA';

PIPELINE_NAME OPERATION_ID 
------------- ------------ 
MY_TREE_DATA            41

A continuación, consulte USER_LOAD_OPERATIONS o DBA_LOAD_OPERATIONS con un predicado de cláusula WHERE en la columna ID (mediante el valor OPERATION_ID).

Por ejemplo:

SELECT ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, STATUS_TABLE FROM USER_LOAD_OPERATIONS
     WHERE ID = 41;

ID TYPE     LOGFILE_TABLE     BADFILE_TABLE     STATUS_TABLE
-- -------- ----------------- ----------------- --------------------
41 PIPELINE PIPELINE$9$41_LOG PIPELINE$9$41_BAD PIPELINE$9$41_STATUS

Esta consulta muestra ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE si existe y STATUS_TABLE. Puede ver estas tablas para obtener información adicional sobre la carga de pipeline.

Consulte la tabla del archivo log de pipeline para ver un log completo de las operaciones de carga del pipeline.

Por ejemplo:

SELECT * FROM PIPELINE$9$41_LOG;

Consulte la tabla de archivos incorrectos de pipeline para ver los detalles de los registros de formato de entrada con errores. La tabla de archivos incorrectos muestra información para las filas que informan errores durante la carga. En función de los errores que se muestran en la tabla de archivos log y las filas que se muestran en la tabla de archivos incorrectos del pipeline, puede corregir los errores modificando las opciones del atributo format del pipeline o modificando los datos del archivo que está cargando.

Por ejemplo:

SELECT * FROM PIPELINE$9$41_BAD;

Consulte Supervisión y solución de problemas de carga de datos para obtener más información.