Escenario: archivar datos de IoT en Object Storage
Archive datos de esquema de base de datos de dominio de IoT antiguos de la base de datos de IA autónoma en Object Storage después de que caduque la ventana de retención de datos activa para que pueda acceder a los datos después de que caduque la ventana de retención de datos activa.
Utilice este escenario para definir un límite de retención para el esquema de base de datos de dominio de IoT y exportar datos que ya no necesitan permanecer en el entorno activo de la base de datos de IA autónoma. Mantenga el archivo en Object Storage para el acceso o la restauración a largo plazo. El esquema activo sigue centrado en la telemetría, los paneles de control y la resolución de problemas actuales, mientras que Object Storage conserva registros antiguos fuera del entorno activo. Exportar datos históricos en un formato de texto fácil de consultar, como Parquet. Exportar datos raw y rechazados como archivos de volcado de pump de datos cuando necesite conservar la columna BLOB content.
Tareas
- Antes de Empezar.
- Paso 1: Planificación de la retención y el archivado de datos.
- Paso 2: Seleccione el formato de archivo.
- Paso 3: Archivar datos históricos en Object Storage.
- Paso 4: Archivar datos raw o rechazados en Object Storage.
- Paso 5: Verificar los objetos de archivo.
- Paso 6 opcional: Carga de un archivo de pump de datos en una tabla.
Antes de empezar
Necesita los privilegios del sistema necesarios para leer y escribir en DATA_PUMP_DIR. Consulte Uso de pump de datos. Para completar este escenario, necesita acceder a la base de datos de IA autónoma, el esquema de base de datos de dominio de IoT y el cubo de Object Storage que recibe los archivos de almacenamiento.
Confirme que el usuario tiene configurado lo siguiente:
- Cree o seleccione un cubo de Object Storage existente para los archivos exportados. Para obtener más información, consulte Colocación de datos en Object Storage.El usuario debe ser miembro de un grupo de usuarios específico con permisos para crear un cubo. Esta política permite al grupo de usuarios especificado hacer todo lo posible con cubos y objetos asociados.
Allow group <user-group-in-customer-tenancy> to manage objects in compartment <bucket-compartment> where target.bucket.name = '<bucket-name>' - Confirme que el usuario de la base de datos puede consultar el esquema de IoT de origen:
<domain-short-id>__IOTUtilice una política de IoT para permitir que un grupo de usuarios tenga acceso completo a los recursos de IoT en un compartimento específico.
Allow group <group-name> to manage iot-family in compartment <compartment-name>.O bien, utilice esta política para permitir que un grupo de usuarios tenga acceso de solo lectura a los recursos de IoT de un compartimento específico.
Allow group <group-name> to read iot-family in compartment <compartment-name>. - Cree una credencial de base de datos para Object Storage o utilice una credencial existente que pueda escribir en el cubo de Object Storage. Consulte Configuración de credenciales y parámetros de ubicación para almacenes de objetos.
Para crear una credencial de base de datos, utilice esta sentencia. Sustituya su OCID de usuario, el ID de arrendamiento por su arrendamiento del servicio IoT y la clave de API de OCI por su clave de API de OCI:
BEGIN dbms_cloud.create_credential( credential_name => 'IOT_OBJ_STORE_CRED', user_ocid => 'ocid1.user.oc1..<>', tenancy_ocid => 'ocid1.tenancy.oc1..<>', private_key => '-----BEGIN PRIVATE KEY----- <> -----END PRIVATE KEY----- OCI_API_KEY', fingerprint => '<>' ); EXCEPTION WHEN OTHERS THEN dbms_output.put_line('Credential IOT_OBJ_STORE_CRED creation error.'); END; /
Paso 1: Planificar la retención y el archivado de datos
La retención de datos define cuánto tiempo permanecen los registros de IoT en el esquema de base de datos de dominio de IoT activo. Mantenga activos los datos recientes cuando las aplicaciones, los paneles de control, los análisis operativos o los flujos de trabajo de resolución de problemas necesiten acceso de baja latencia. Cuando los registros quedan fuera de la ventana de retención, archivarlos en Object Storage antes de eliminarlos del esquema activo. Este enfoque limita el crecimiento en la base de datos operativa y aún conserva la telemetría anterior, las cargas útiles sin procesar y los mensajes rechazados para auditoría, investigación, análisis fuera de línea o restauración. Para obtener más información, consulte Actualización de la retención de datos de un dominio de IoT.
Elija el corte de retención de sus requisitos de negocio, informes y conformidad. Utilice el mismo corte en la consulta de exportación y en cualquier proceso de limpieza posterior para que el límite del archivo esté claro. Las columnas de registro de hora, como time_observed para los datos históricos y time_received para los datos raw o rechazados, son claves de retención típicas. Registre el cubo, el prefijo de objeto, el formato de exportación, el nombre de credencial, la tabla de origen y el rango temporal para cada juego de archivos, de modo que pueda buscar y volver a cargar los datos más adelante.
Paso 2: Seleccione el formato de archivo
Después de definir el corte de retención, seleccione el formato de exportación basado en la tabla de base de datos de dominio de IoT que desea archivar y si necesita conservar los datos BLOB.
- Datos con historial
- Utilice
DBMS_CLOUD.EXPORT_DATAcon un formato de texto como Parquet, CSV, JSON o XML. Parquet es útil cuando los datos antiguos deben seguir siendo consultables fuera del entorno de IoT activo. - Datos no procesados o rechazados
- Utilice
DBMS_CLOUD.EXPORT_DATAcon formato de pump de datos cuando la tabla incluya la columna BLOBcontenty necesite conservar la carga útil original completa.
Paso 3: archivar datos históricos en Object Storage
Los datos históricos ya son interpretados por la plataforma IoT. Exporte filas con historial que hayan quedado obsoletas en la ventana de retención activa en un formato fácil de consultar para que los informes o los análisis fuera de línea puedan leer el archivo de Object Storage.
En este ejemplo, se exportan registros de más de tres meses a un objeto Parquet en Object Storage.
begin dbms_cloud.export_data( credential_name => 'IOT_OBJ_STORE_CRED', file_uri_list => 'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket>/o/iot-archive/historized/historized_data_older_than_3_months.parquet', format => json_object( 'type' value 'parquet' ), query => q'[ select * from <domain-short-id>__IOT.HISTORIZED_DATA where time_observed < add_months(systimestamp, -3) ]' ); end; /Para cargar el archivo de Parquet en una tabla de destino más adelante, cree una tabla de destino compatible y utilice
DBMS_CLOUD.COPY_DATA.begin dbms_cloud.copy_data( table_name => 'HISTORIZED_DATA_ARCHIVE', credential_name => 'IOT_OBJ_STORE_CRED', file_uri_list => 'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket>/o/iot-archive/historized/historized_data_older_than_3_months.parquet', format => json_object( 'type' value 'parquet' ) ); end; /
Paso 4: archivar datos raw o rechazados en Object Storage
Los datos raw y rechazados pueden incluir la columna BLOB content. Utilice una exportación de pump de datos cuando el proceso de retención mueva estas filas fuera del entorno activo y necesite conservar la fila completa, incluido el contenido BLOB. Para archivar tablas de bases de datos de IoT, utilice Exportación de datos de base de datos de IA autónoma al almacén de objetos u otras bases de datos Oracle.
Exportar datos raw:
begin dbms_cloud.export_data( credential_name => 'IOT_OBJ_STORE_CRED', file_uri_list => 'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket>/o/iot-archive/raw/raw_data_older_than_3_months.dmp', format => json_object( 'type' value 'datapump', 'compression' value 'HIGH', 'version' value 'LATEST' ), query => q'[ select * from <domain-short-id>__IOT.RAW_DATA where time_received < add_months(systimestamp, -3) ]' ); end; /Exportar datos rechazados:
begin dbms_cloud.export_data( credential_name => 'IOT_OBJ_STORE_CRED', file_uri_list => 'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket>/o/iot-archive/rejected/rejected_data_older_than_3_months.dmp', format => json_object( 'type' value 'datapump', 'compression' value 'HIGH', 'version' value 'LATEST' ), query => q'[ select * from <domain-short-id>__IOT.REJECTED_DATA where time_received < add_months(systimestamp, -3) ]' ); end; /
Utilice
DBMS_CLOUD.COPY_DATA para formatos de texto como Parquet, CSV, JSON o XML. Para los archivos de volcado de pump de datos, utilice Importación de pump de datos cuando necesite restaurar los datos archivados.Paso 5: Verificar los objetos de archivo
Utilice el comando de la CLI de Object Storage oci os object list para confirmar si los archivos de almacenamiento se han escrito en el cubo de Object Storage. Para obtener más información, consulte Lista de cubos de Object Storage y Lista de objetos de Object Storage en un cubo.
oci os object list \
--namespace <namespace> \
--bucket-name <bucket> \
--prefix iot-archive/
Después de verificar los archivos de almacenamiento, siga el proceso de limpieza de retención aprobado para eliminar el rango de tiempo archivado del esquema de IoT activo.
Paso Opcional 6: Carga de un Archivo de Pump de Datos en una Tabla
Utilice este procedimiento de copia cuando necesite leer filas archivadas raw o rechazadas de Object Storage de nuevo en una tabla de base de datos de IA autónoma para la investigación, la validación o una restauración de destino. El procedimiento lee el archivo de volcado de pump de datos de Object Storage y lo carga en la tabla de destino especificada; no hace que el archivo forme parte de la ruta de entrada de IoT activa. Para una restauración de nivel de esquema completo, utilice la importación de pump de datos. Para obtener más información, consulte Descarga, ejecución de Data Pump Import y limpieza del almacén de objetos.
Cargue el archivo de volcado de Object Storage en una tabla de archivo de destino:
begin
dbms_cloud.copy_data(
table_name => 'RAW_DATA_ARCHIVE',
credential_name => 'IOT_OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket>/o/iot-archive/raw/raw_data_older_than_3_months.dmp',
format => json_object(
'type' value 'datapump',
'rejectlimit' value 0
)
);
end;
/
Preguntas más frecuentes
En esta sección de preguntas frecuentes se describen las historias de usuarios del archivo de almacenamiento de objetos en este escenario.
- ¿Qué datos deben permanecer en el esquema de base de datos de IoT activo?
- Mantenga los datos que las aplicaciones, los paneles de control, los análisis operativos y los flujos de trabajo de resolución de problemas necesitan para el acceso de baja latencia. Archive los registros anteriores antes de que queden fuera de la ventana de retención definida en el Paso 1: Planificar la retención y el archivado de datos.
- ¿Tengo que utilizar el mismo formato de archivo para cada tabla de IoT?
- Nº Utilice un formato de texto fácil de consultar, como Parquet, para los datos históricos cuando desee inspeccionar o analizar registros antiguos fuera del entorno activo. Utilice el formato de pump de datos para los datos raw o rechazados cuando necesite conservar la fila completa, incluida la columna BLOB
content. - ¿Puedo consultar datos de IoT archivados más adelante?
- Sí. Para los archivos Parquet, CSV, JSON o XML, cargue el objeto en una tabla de destino compatible con
DBMS_CLOUD.COPY_DATAo utilice un flujo de trabajo de informes que pueda leer el formato exportado. Para los archivos de volcado de pump de datos, utilice la importación de pump de datos o el procedimiento de copia que se muestra en el Paso 6 Opcional: Carga de un Archivo de Pump de Datos en una Tabla cuando necesite inspeccionar filas archivadas en una tabla de base de datos. - ¿Qué debo grabar para cada conjunto de archivos?
- Registre la tabla de origen, el corte de retención, el rango temporal, el cubo de Object Storage, el prefijo de objeto, el formato de exportación, el nombre de credencial y el resultado de verificación. Estos metadatos le ayudan a encontrar el objeto de archivo correcto y a volver a cargar los datos más adelante.
- ¿Por qué el paso de restauración opcional utiliza
DBMS_CLOUD.COPY_DATA? - Utilice
DBMS_CLOUD.COPY_DATAcuando necesite una carga de destino de un archivo de almacenamiento de objetos en una tabla de base de datos para la validación, investigación o restauración parcial. Utilizar la importación de pump de datos cuando necesite un flujo de trabajo de restauración de pump de datos completo.
Siguientes Pasos
Después de archivar y verificar los datos de IoT, continúe con las tareas de retención y restauración de su entorno.
- Actualice el proceso de limpieza o la configuración de retención de datos del dominio de IoT para que el esquema activo solo mantenga la ventana operativa necesaria.
- Aplique los requisitos de retención, ciclo de vida y control de acceso de Object Storage al cubo y los prefijos del archivo.
- Documente la ubicación del archivo, la tabla de origen, el intervalo de tiempo, el formato y el resultado de verificación para futuras solicitudes de auditoría o restauración.
- Utilice
DBMS_CLOUD.COPY_DATAo la importación de pump de datos para volver a cargar los datos archivados cuando necesite inspeccionar o restaurar registros anteriores.