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, 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 se inicia 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 el 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 que se están ejecutando actualmente 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 el 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 el 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 antes de que se pueda borrar el pipeline. Consulte el 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.

Nota: Opcionalmente, puede utilizar el pipeline de restablecimiento para depurar datos en la tabla de base de datos asociada a un pipeline de carga o para eliminar archivos en el almacén de objetos para un pipeline de exportación. Normalmente, esta opción se utiliza cuando está probando un pipeline durante el desarrollo del pipeline.

El restablecimiento del pipeline funciona de la siguiente manera:

Para restablecer un pipeline:

  1. Pare el pipeline que desea restablecer.

    Un pipeline de datos debe estar en estado parado para restablecerlo. Consulte el 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 de la tabla de base de datos, de un pipeline de carga o de archivos en el almacén de objetos para un pipeline de exportación. Normalmente, esta opción se utiliza cuando está probando un pipeline durante el desarrollo del pipeline.

    Consulte el Procedimiento RESET_PIPELINE para obtener más información.

Supervisión y solución de problemas de pipelines

Todos los pipelines que se crean 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 del 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 se inicia 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 Vistas DBMS_CLOUD_PIPELINE 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 Vistas DBMS_CLOUD_PIPELINE 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 ayudarle a supervisar 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 Vistas DBMS_CLOUD_PIPELINE 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, incluidos los siguientes:

Por ejemplo, a continuación se muestra que la operación de carga de dos archivos ha fallado y una ha finalizado:

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

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

Para obtener más información para 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 del 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 finalizado correctamente.
  • FAILED: la operación de archivo ha fallado; se puede intentar volver a intentarlo dos veces.
  • PENDING: la operación de archivo aún no se ha iniciado.
  • RUNNING: la operación de archivo está en curso actualmente.
  • SKIPPED: operación de archivo omitida.
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 final para el pipeline.
SID NUMBER Las sesiones SID y SERIAL# indican la sesión de trabajo que estaba ejecutando la operación de carga de pipeline.
SERIAL# NUMBER Las sesiones SID y SERIAL# 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 del pipeline.

Consulte la tabla del archivo log del 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 con errores del pipeline para ver los detalles de los registros de formato de entrada con errores. La tabla de archivos incorrecta muestra información de las filas que informan de errores durante la carga. Según los errores que se muestran en la tabla de archivos log y las filas que se muestran en la tabla de archivos con errores 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.