La transcodificación de datos a nivel local en una unidad central es un proceso con uso intensivo de CPU que da como resultado un alto consumo de millones de instrucciones por segundo (MIPS). Para evitar esto, puede usar Cloud Run para mover y transcodificar datos de unidades centrales de forma remota en en Google Cloud. Esto libera tu unidad central para tareas esenciales del negocio y también reduce el consumo de MIPS.
En el siguiente diagrama, se muestra cómo puedes mover tus datos de la unidad central a un bucket de Cloud Storage, transcodificarlos al formato ORC con Cloud Run y, luego, mover el contenido a BigQuery.
Antes de comenzar
- Implementa el conector de unidades centrales en Cloud Run.
- Crea una cuenta de servicio o identifica una cuenta de servicio existente para usarla con Mainframe Connector. Esta cuenta de servicio debe tener permisos para acceder a los buckets de Cloud Storage, los conjuntos de datos de BigQuery y cualquier otro recurso de Google Cloud que desees usar.
- Asegúrate de que la cuenta de servicio que creaste tenga asignado el rol de invocador de Cloud Run.
Migrar datos de unidades centrales a Google Cloud y transcodificarlos de forma remota con Cloud Run
Para mover tus datos de la unidad central a Google Cloud y transcodificarlos de forma remota con Cloud Run, debes realizar las siguientes tareas:
- Lee y transcodifica un conjunto de datos en un mainframe, y súbelo a Cloud Storage en formato ORC. La transcodificación se realiza durante la operación
cp
. en el que un código de intercambio decimal codificado en formato binario de unidad central (EBCDIC) conjunto de datos se convierte al formato ORC en UTF-8 durante la copia a un bucket de Cloud Storage. - Cargar el conjunto de datos en una tabla de BigQuery
- Ejecuta una consulta en SQL en la tabla de BigQuery (opcional).
- (Opcional) Exporta datos de BigQuery a un archivo binario en Cloud Storage.
Para realizar estas tareas, sigue estos pasos:
En tu computadora central, crea un trabajo para leer el conjunto de datos y transcodificarlo al formato ORC, como se indica a continuación. Lee los datos del conjunto de datos INFILE y para grabar el diseño del COPYBOOK DD. El conjunto de datos de entrada debe ser un archivo de método de acceso secuencial en cola (QSAM) con una longitud de registro fija o variable.
Para obtener la lista completa de las variables de entorno compatibles con el conector de Mainframe, consulta Variables de entorno.
//STEP01 EXEC BQSH //INFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.FILENAME //STDIN DD * gsutil cp --replace gs://mybucket/tablename.orc \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443 /*
Si deseas registrar los comandos ejecutados durante este proceso, puedes habilitar las estadísticas de carga.
(Opcional) Crea y envía un trabajo de consulta de BigQuery que ejecute una operación de lectura de SQL desde el archivo DD de QUERY. Por lo general, la consulta será una
MERGE
oSELECT INTO DML
que da como resultado la transformación de una tabla de BigQuery. Nota que el conector de unidades centrales registre en las métricas del trabajo, pero no escriba consultas los resultados a un archivo.Puedes consultar BigQuery de varias maneras intercaladas, con un conjunto de datos con DD, o con un conjunto de datos separado que usa DSN.
Example JCL //STEP03 EXEC BQSH //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR //STDIN DD * PROJECT=PROJECT_NAME LOCATION=LOCATION bq query --project_id=$PROJECT \ --location=$LOCATION/* /*
Reemplaza lo siguiente:
PROJECT_NAME
: Es el nombre del proyecto en el que deseas realizar la acción. cuando quieres ejecutar la consulta.LOCATION
: Es la ubicación en la que se realizará la consulta. ejecutado. Te recomendamos que ejecutes la consulta en una ubicación cercana a la de datos no estructurados.
(Opcional) Crea y envía un trabajo de exportación que ejecute una operación de lectura de SQL desde el archivo DD de QUERY y exporte el conjunto de datos resultante a Cloud Storage como un archivo binario.
Example JCL //STEP04 EXEC BQSH //OUTFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.FILENAME //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR //STDIN DD * PROJECT=PROJECT_NAME DATASET_ID=DATASET_ID DESTINATION_TABLE=DESTINATION_TABLE BUCKET=BUCKET bq export --project_id=$PROJECT \ --dataset_id=$DATASET_ID \ --destination_table=$DESTINATION_TABLE \ --location="US" \ --bucket=$BUCKET \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443 /*
Reemplaza lo siguiente:
PROJECT_NAME
: Es el nombre del proyecto en el que deseas realizar la acción. cuando quieres ejecutar la consulta.DATASET_ID
: El ID del conjunto de datos de BigQuery que contiene la tabla que deseas exportar.DESTINATION_TABLE
: La tabla de BigQuery que quieres exportar.BUCKET
: El bucket de Cloud Storage que que contiene el archivo binario de salida.
¿Qué sigue?
- Cómo mover datos de mainframe transcodificados de forma local a Google Cloud
- Transcodifica datos de unidades centrales de forma remota en Google Cloud.
- Transcodificar datos de unidades centrales que se trasladaron a Google Cloud mediante una biblioteca de cintas virtual