OSS-HDFS Service (JindoFS Service) es un producto de almacenamiento de data lake nativo de la nube. Un origen de datos de OSS-HDFS proporciona un canal bidireccional para leer y escribir en OSS-HDFS. Este tema describe las capacidades de sincronización de datos que DataWorks ofrece para OSS-HDFS.
Capacidades compatibles
|
Capacidad |
Compatible |
|
Lectura sin conexión |
Sí |
|
Escritura sin conexión |
Sí |
|
Escritura en tiempo real |
Sí |
Limitaciones
Lectura sin conexión
La conexión de red desde un resource group hacia OSS-HDFS puede ser compleja. Para ejecutar tareas de sincronización de datos, utilice un Serverless resource group (recommended) o un exclusive resource group for Data Integration. Asegúrese de que su resource group pueda acceder a OSS-HDFS a través de la red.
OSS-HDFS Reader admite lo siguiente:
Archivos en formatos de texto, CSV, ORC y Parquet. El contenido del archivo debe ser una tabla lógica bidimensional.
Lectura de varios tipos de datos y constantes de columna.
Lecturas recursivas y los caracteres comodín
*y?.Lecturas simultáneas desde varios archivos. El número real de hilos simultáneos corresponde al valor menor entre la cantidad de archivos por leer y la configuración de
concurrent.
OSS-HDFS Reader no admite lecturas simultáneas con múltiples hilos desde un solo archivo debido al algoritmo interno de fragmentación para archivos individuales.
Escritura sin conexión
OSS-HDFS Writer solo admite los formatos de texto, ORC y Parquet. El contenido del archivo debe ser una tabla lógica bidimensional.
Para archivos de texto, asegúrese de que el delimitador de campos utilizado para la escritura coincida con el delimitador usado al crear la tabla de Hive. Esto garantiza que los datos escritos en OSS-HDFS se asignen correctamente a los campos de la tabla de Hive.
Escritura en tiempo real
Admite escrituras en tiempo real.
Admite escrituras en tiempo real para la versión 0.14.x del formato Hudi.
Tipos de campo compatibles
Lectura sin conexión
OSS-HDFS Reader convierte los tipos de datos de ParquetFile, ORCFile, TextFile y CsvFile a los tipos internos que admite Data Integration.
|
Categoría de tipo |
Tipos de datos de OSS-HDFS |
|
Entero |
TINYINT, SMALLINT, INT, BIGINT |
|
Punto flotante |
FLOAT, DOUBLE, DECIMAL |
|
Cadena |
STRING, CHAR, VARCHAR |
|
Fecha y hora |
DATE, TIMESTAMP |
|
Booleano |
BOOLEAN |
Los siguientes ejemplos ilustran las representaciones de tipos internos:
LONG: Datos enteros en un archivo de OSS-HDFS, como 123456789.
DOUBLE: Datos de punto flotante en un archivo de OSS-HDFS, como 3.1415.
BOOLEAN: Datos booleanos en un archivo de OSS-HDFS, como true o false. Los valores no distinguen entre mayúsculas y minúsculas.
DATE: Datos de fecha y hora en un archivo de OSS-HDFS, como 2014-12-31 00:00:00.
Escritura sin conexión
OSS-HDFS Writer escribe archivos en formatos TextFile, ORCFile y ParquetFile en una ruta especificada del sistema de archivos de OSS-HDFS.
|
Categoría de tipo |
Tipos de datos de OSS-HDFS |
|
Entero |
TINYINT, SMALLINT, INT, BIGINT |
|
Punto flotante |
FLOAT, DOUBLE |
|
Cadena |
CHAR, VARCHAR, STRING |
|
Booleano |
BOOLEAN |
|
Fecha y hora |
DATE, TIMESTAMP |
Agregar un origen de datos
Antes de desarrollar una tarea de sincronización en DataWorks, agregue el origen de datos necesario siguiendo las instrucciones en Gestión de orígenes de datos. Las descripciones de los parámetros están disponibles en la consola de DataWorks cuando agrega un origen de datos.
Desarrollar una tarea de sincronización de datos
Configurar una tarea de sincronización sin conexión para una sola tabla
Para obtener instrucciones paso a paso, consulte Configure a task in the codeless UI y Configure a task in the code editor.
Para ver una lista completa de parámetros y un ejemplo de script, consulte Appendix: Script demos and parameter descriptions.
Configurar una tarea de sincronización en tiempo real para una sola tabla
Consulte Configure real-time incremental synchronization for a single table y Configure a real-time synchronization task in DataStudio.
Configurar una tarea de sincronización en tiempo real completa e incremental para una base de datos completa
Consulte Configure a real-time synchronization task for an entire database.
Apéndice: Ejemplos de scripts y descripciones de parámetros
Ejemplo de script de Reader
Todos los parámetros siguen el formato de script unificado requerido por el editor de código. Para obtener detalles sobre el formato, consulte Configure a task in the code editor.
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "oss_hdfs",
"parameter": {
"path": "",
"datasource": "",
"column": [
{
"index": 0,
"type": "string"
},
{
"index": 1,
"type": "long"
},
{
"index": 2,
"type": "double"
},
{
"index": 3,
"type": "boolean"
},
{
"format": "yyyy-MM-dd HH:mm:ss",
"index": 4,
"type": "date"
}
],
"fieldDelimiter": ",",
"encoding": "UTF-8",
"fileFormat": ""
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 3,
"throttle": true,
"mbps": "12"
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parámetros del script de Reader
|
Parámetro |
Descripción |
Obligatorio |
Valor predeterminado |
|
|
La ruta del archivo o directorio que se va a leer. Se admiten tres estilos de entrada: OPCIÓN 1: Archivo único — OSS-HDFS Reader utiliza un solo hilo para leer el archivo. OPCIÓN 2: Varios archivos — OSS-HDFS Reader lee los archivos de forma simultánea. El número real de hilos corresponde al valor menor entre la cantidad de archivos y la configuración de |
Sí |
Ninguna |
|
|
El tipo de archivo. Valores válidos: |
Sí |
Ninguna |
|
|
La lista de campos que se van a leer. Establezca |
Sí |
Ninguna |
|
|
El delimitador de campos para leer datos de TextFile. No es necesario para archivos ORC o Parquet. |
No |
|
|
|
La codificación del archivo. |
No |
|
|
|
La cadena que se debe tratar como un valor nulo. Por ejemplo, al configurar |
No |
Ninguna |
|
|
El formato de compresión. Valores válidos: |
No |
Ninguna |
Ejemplo de script de Writer
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "oss_hdfs",
"parameter": {
"path": "",
"fileName": "",
"compress": "",
"datasource": "",
"column": [
{
"name": "col1",
"type": "string"
},
{
"name": "col2",
"type": "int"
},
{
"name": "col3",
"type": "double"
},
{
"name": "col4",
"type": "boolean"
},
{
"name": "col5",
"type": "date"
}
],
"writeMode": "",
"fieldDelimiter": ",",
"encoding": "",
"fileFormat": "text"
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 3,
"throttle": false
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parámetros del script de Writer
|
Parámetro |
Descripción |
Obligatorio |
Valor predeterminado |
|
|
|
El tipo de archivo. Valores válidos: |
Sí |
Ninguna |
|
|
|
La ruta en el sistema de archivos de OSS-HDFS donde se almacenan los datos. OSS-HDFS Writer escribe varios archivos en este directorio según la configuración de concurrencia. Al asociarlo con una tabla de Hive, especifique la ruta de almacenamiento de dicha tabla en OSS-HDFS. |
Sí |
Ninguna |
|
|
|
El nombre base para los archivos de salida. Se añade un sufijo aleatorio a este nombre para cada hilo simultáneo con el fin de crear los nombres reales de los archivos. |
Sí |
Ninguna |
|
|
|
Los campos que se van a escribir. No se admite la escritura en un subconjunto de columnas. Al asociarlo con una tabla de Hive, especifique todos los nombres y tipos de campos. Utilice |
Sí (no es obligatorio si |
Ninguna |
|
|
|
Define cómo maneja OSS-HDFS Writer los archivos existentes antes de escribir. OSS-HDFS Writer utiliza una estrategia de escritura y renombrado: primero se escriben los datos en un directorio temporal cuyo nombre sigue la regla |
Sí |
Ninguna |
|
|
|
El delimitador de campos para los archivos de salida. Solo se admiten delimitadores de un solo carácter; el uso de varios caracteres provoca un error en tiempo de ejecución. No es necesario cuando |
Sí (no es obligatorio si |
Ninguna |
|
|
|
El formato de compresión para archivos de texto. Valores válidos: |
No |
Ninguna |
|
|
|
La codificación del archivo. |
No |
|
|
|
|
La definición de esquema para los archivos de salida Parquet. Solo surte efecto cuando |
optional> |
No |
Ninguna |