Utilice la herramienta de línea de comandos para acceder a sus proyectos de DataHub y ejecutar comandos.
Requisitos previos
Java 8 o una versión posterior instalada.
Instalación y configuración del cliente
Descargue y extraiga el paquete de la herramienta de línea de comandos datahub_console.tar.gz.
Al extraer el paquete se crean los directorios
bin,confylib.-
Vaya al directorio
confe introduzca la información deakyendpointen el archivodatahub.propertiesde la siguiente manera:datahub.accessid= datahub.accesskey= datahub.endpoint=Detalles de los parámetros:
Parámetro
Obligatorio
Descripción
Ejemplo
datahub.accessid
Sí
El AccessKey ID de su cuenta de Alibaba Cloud o usuario de RAM.
N/A
datahub.accesskey
Sí
El AccessKey Secret correspondiente al AccessKey ID especificado.
N/A
datahub.endpoint
Sí
El endpoint del servicio DataHub.
Establezca el endpoint según la región y el tipo de red de su proyecto de DataHub. Para consultar la lista de endpoints disponibles, consulte DataHub Endpoints.
Ejecución del cliente
Inicie el cliente mediante uno de los siguientes métodos:
Opción 1: En el directorio
binde la ruta de instalación del cliente, haga doble clic en el archivodatahubcmd.bat(para Windows) para iniciar el cliente. El cliente se inicia correctamente cuando aparece el símbolo del sistemaDataHub=>.Opción 2: En la ventana de línea de comandos de su sistema, vaya al directorio
binde la ruta de instalación del cliente. Ejecute el comandodatahubcmd(para Windows) osh datahubcmd.sh(para Linux o macOS). El cliente se inicia correctamente cuando aparece el símbolo del sistemaDataHub=>.
Ayuda de comandos
Para obtener ayuda sobre los comandos, utilice uno de los siguientes métodos.
-
Opción 1: Consulte la información de ayuda desde el propio cliente.
-
Consulte todos los comandos:
help -
Consulte los comandos relacionados por palabra clave. Por ejemplo, para obtener una lista de topics:
DataHub=>help lt NAME lt - List topic SYNOPSYS lt [-p] string OPTIONS -p string projectName [Mandatory]
-
-
Opción 2: Desde la ventana de línea de comandos de su sistema, vaya al directorio
binen la ruta de instalación del cliente y ejecute el siguiente comando para consultar la ayuda de todos los comandos....\bin>datahubcmd help
Referencia de comandos
Project
-
Crear un proyecto
cp -p test_project -c test_comment-p: El nombre del proyecto.
-c: Una descripción para el proyecto.
-
Eliminar un proyecto
ImportanteAntes de eliminar un proyecto, debe eliminar todos sus recursos, como topics, suscripciones y tareas de sincronización de datos. De lo contrario, la operación fallará.
dp -p test_project-p: El nombre del proyecto.
-
Listar proyectos
lp
Topic
-
Crear un topic
ct -p test_project -t test_topic -m TUPLE -f [(name,string,true)] -s 3 -l 3 -c test_comment-p: El nombre del proyecto.
-t: El nombre del topic.
-m: El tipo de topic. Los valores válidos son
BLOBoTUPLE.-f: El esquema para un topic de tipo tuple. El formato es
[(fieldName,fieldType,isNull)]. Separe varios campos con comas.-s: El número de shards.
-l: El ciclo de vida de los datos, en días. El valor debe estar entre 1 y 7.
-c: Una descripción para el topic.
-
Eliminar un topic
dt -p test_project -t test_topic-p: El nombre del proyecto.
-t: El nombre del topic.
-
Obtener información del topic
gt -p test_project -t test_topic-p: El nombre del proyecto.
-t: El nombre del topic.
-
Exportar el esquema de un topic a un archivo JSON
gts -f filepath -p test_project -t test_topic-f: La ruta donde se guarda el archivo JSON.
-p: El nombre del proyecto.
-t: El nombre del topic.
-
Listar topics
lt -p test_project-p: El nombre del proyecto.
-
Crear un topic a partir de un archivo JSON
rtt -s 3 -l 3 -c test_comment -f filepath -p test_project -t test_topic-s: El número de shards.
-l: El ciclo de vida de los datos en días. El rango válido es de 1 a 7.
-f: La ruta del archivo.
-p: El nombre del proyecto.
-t: El nombre del topic.
-
Actualizar el ciclo de vida del topic
utl -p test_project -t test_topic -l 3 -c test_comment-p: El nombre del proyecto.
-t: El nombre del topic.
-l: El ciclo de vida del topic.
-c: Una descripción para el topic.
-
Agregar un campo al topic
anf -p test_project -t test_topic -l [(f1,STRING)]-p: El nombre del proyecto.
-t: El nombre del topic.
-l: El nuevo campo que se va a agregar. El formato es
[(fieldName,fieldType)].
Connector
-
Crear un conector de ODPS
coc -p test_project -t test_topic -m SYSTEM_TIME -e odpsEndpoint -op odpsProject -ot odpsTable -oa odpsAccessId -ok odpsAccessKey -tr 60 -c (field1,field2) -tf ds hh mm-p: El nombre del proyecto.
-t: El nombre del topic.
-m: El tipo de sincronización. Para sincronizar con ODPS, los tipos compatibles son
SYSTEM_TIME,USER_DEFINE,EVENT_TIMEyMETA_TIME.-e: El endpoint de ODPS. Debe utilizar un endpoint de red clásica.
-op: El nombre del proyecto de ODPS.
-oa: El AccessKey ID para acceder a ODPS.
-ok: El AccessKey Secret para acceder a ODPS.
-tr: El intervalo de tiempo de partición en minutos. El valor predeterminado es 60.
-tf: El formato de partición. Utilice
dspara particiones diarias,ds hhpara horarias yds hh mmpara particiones a nivel de minuto.
-
Agregar un campo a un conector de ODPS
acf -p test_project -t test_topic -c connectorId -f fieldName-p: El nombre del proyecto.
-t: El nombre del topic.
-c: El ID del conector. Puede encontrarlo en la pestaña Data Synchronization.
-f: El nombre del nuevo campo.
-
Crear un conector de MySQL/RDS
cdc -p test_project -t test_topic -h host -po 3306 -ty mysql -d mysql_database -ta msyql_table -u username -pa password -ht IGNORE -n (field1,field2)-p: El nombre del proyecto.
-t: El nombre del topic.
-h: El host. Debe utilizar un endpoint de red clásica.
-po: El puerto.
-
-ty: El tipo de destino. Los valores válidos son:
SINK_MYSQLcrea un conector para sincronizar datos con MySQL.SINK_ADScrea un conector para sincronizar datos con ADS.
-d: El nombre de la base de datos.
-ta: El nombre de la tabla.
-u: El nombre de usuario.
-pa: La contraseña.
-
-ht: El modo de inserción. Los valores válidos son:
IGNOREOVERWRITE
-n: Los campos que se van a sincronizar. Ejemplo:
(field1,field2).
-
Crear un conector de DataHub
cdhc -p test_project -t test_topic -sp sinkProject -st sinkTopic -m AK -i accessid k accessKey-p: El nombre del proyecto.
-t: El nombre del topic.
-sp: El proyecto de destino donde se importarán los datos.
-st: El topic de destino donde se importarán los datos.
-m: El tipo de autenticación
AK: Autentica mediante un AccessKey. RequiereaccessIdyaccessKey.STS: Autentica mediante Security Token Service (STS).
-
Crear un conector de FC
cfc -p test_project -t test_topic -e endpoint -s service -f function -au AK -i accessId -k accessKey -n (field1,field2)-p: El nombre del proyecto.
-t: El nombre del topic.
-e: El endpoint de Function Compute (FC). Debe utilizar un endpoint de red clásica.
-s: El nombre del servicio de FC.
-f: El nombre de la función de FC.
-au: El método de autenticación
AK: Autentica mediante un AccessKey. RequiereaccessIdyaccessKey.STS: Autentica mediante STS.-n: Los campos que se van a sincronizar. Ejemplo:
(field1,field2).
-
Crear un conector de Hologres
chc -p test_project -t test_topic -e endpoint -cl (field,field2) -au AK -hp holoProject -ht holoTopic -i accessId -k accessKey -m Delimiter -l 1 -b false -n (field1,field2)-p: El nombre del proyecto.
-t: El nombre del topic.
-e: El endpoint.
-cl: Los campos que se van a sincronizar con Hologres.
-au: El método de autenticación. Actualmente, solo se admite la autenticación AK para conectores de Hologres.
-
-m: El tipo de análisis sintáctico:
Delimiter: Requiere especificar las propiedadeslineDelimiter,parseDataycolumnDelimiter.InformaticaJson: Requiere especificar la propiedadparseData.
-
Crear un conector de OTS
cotsc -p test_project -t test_topic -i accessId -k accessKey -it instanceId -m AK -t table -wm PUT -c (field1,field2)-p: El nombre del proyecto.
-t: El nombre del topic.
-it: El nombre de la instancia de Tablestore (OTS).
-m: El tipo de autenticación. El valor predeterminado es STS.
AK: Autentica mediante un AccessKey. Debe proporcionar unaccessIdy unaccessKey.STS: Autentica mediante STS.-t: El nombre de la tabla de OTS.
-
-wm: El modo de escritura. Se admiten dos modos:
PUTUPDATE
-c: Los campos que se van a sincronizar. Ejemplo:
(field1,field2).
-
Crear un conector de Elasticsearch
cec -p test_project -t test_es -e endpoint:9200 -i f1 -u user -w password -n (f1,f2) -ty (f1,f2) -r (f1,f2) -c (f1,f2) -ti "1970-01-01 00:00:00"-p: El nombre del proyecto.
-t: El nombre del topic.
-e: El endpoint de Elasticsearch. Debe ser un endpoint interno y un puerto con el formato
internal_endpoint:internal_port.-i: El índice. Para obtener más información sobre los índices, consulte Create a connector to synchronize data to Elasticsearch.
-u: El nombre de usuario para acceder a Elasticsearch.
-w: La contraseña para acceder a Elasticsearch.
-n: La columna de propiedad de ID.
-ty: La columna de propiedad de tipo.
-r: La columna de propiedad de router.
-c: Los campos que se van a importar.
-ti: La hora de inicio de la sincronización, en formato
yyyy-mm-dd hh:mm:ss.
-
Crear un conector de OSS
csc -p test_project -t test_topic -b bucket -e endpoint -pr ossPrefix -tf ossTimeFormat -tr timeRange -c (f1,f2)-p: El nombre del proyecto.
-t: El nombre del topic.
-b: El nombre del bucket de Object Storage Service (OSS).
-e: El nombre del endpoint de OSS.
-pr: El prefijo de directorio para los datos sincronizados con OSS.
-tf: El formato de hora de sincronización. Por ejemplo,
%Y%m%d%H%Mespecifica particiones a nivel de minuto.-tr: El intervalo de tiempo para las particiones.
-c: Los campos que se van a sincronizar.
-
Eliminar conectores
dc -p test_project -t test_topic -c connectorId-p: El nombre del proyecto.
-t: El nombre del topic.
-c: El ID del conector. Puede encontrarlo en la pestaña Data Synchronization.
-
Obtener detalles del conector
gc -p test_project -t test_topic -c connectorId-p: El nombre del proyecto.
-t: El nombre del topic.
-c: El ID del conector. Puede encontrarlo en la pestaña Data Synchronization.
-
Listar conectores en un topic
lc -p test_project -t test_topic-p: El nombre del proyecto.
-t: El nombre del topic.
-
Reiniciar un conector
rc -p test_project -t test_topic -c connectorId-p: El nombre del proyecto.
-t: El nombre del topic.
-c: El ID del conector. Puede encontrarlo en la pestaña Data Synchronization.
-
Actualizar el AccessKey de un conector
uca -p test_project -t test_topic -c connectorId -a accessId -k accessKey-p: El nombre del proyecto.
-t: El nombre del topic.
-c: El ID del conector. Puede encontrarlo en la pestaña Data Synchronization.
Shard
-
Fusionar shards
ms -p test_project -t test_topic -s shardId -a adjacentShardId-p: El nombre del proyecto.
-t: El nombre del topic.
-s: El ID del shard que se va a fusionar.
-a: El ID del shard adyacente con el que se va a fusionar.
-
Dividir un shard
ss -p test_project -t test_topic -s shardId-p: El nombre del proyecto.
-t: El nombre del topic.
-s: El ID del shard que se va a dividir.
-
Listar shards en un topic
ls -p test_project -t topicName-p: El nombre del proyecto.
-t: El nombre del topic.
-
Obtener el estado de sincronización del shard
gcs -p test_project -t test_topic -s shardId -c connectorId-p: El nombre del proyecto.
-t: El nombre del topic.
-s: El ID del shard.
-c: El ID del conector. Puede encontrarlo en la pestaña Data Synchronization.
-
Obtener el desplazamiento de consumo de un shard
gso -p test_project -t test_topic -s subid -i shardId-p: El nombre del proyecto.
-t: El nombre del topic.
-s: El ID de la suscripción.
-i: El ID del shard.
Subscription
-
Crear una suscripción
css -p test_project -t test_topic -c comment-p: El nombre del proyecto.
-t: El nombre del topic.
-c: Una descripción para la suscripción.
-
Eliminar una suscripción
dsc -p test_project -t test_topic -s subId-p: El nombre del proyecto.
-t: El nombre del topic.
-s: El ID de la suscripción.
-
Listar suscripciones
lss -p test_project -t test_topic-p: El nombre del proyecto.
-t: El nombre del topic.
Carga y descarga de datos
-
Cargar datos
uf -f filepath -p test_topic -t test_topic -m "," -n 1000-f: La ruta del archivo. Nota: Para rutas de Windows, debe escapar las barras invertidas. Ejemplo:
D:\\test\\test.txt.-p: El nombre del proyecto.
-t: El nombre del topic.
-m: El delimitador de texto. Se admiten comas (
,) y espacios.-n: El tamaño del lote para cada carga. El valor predeterminado es 1000.
Ejemplo: Cargar un archivo CSV
Este ejemplo muestra cómo cargar un archivo CSV en DataHub. El archivo tiene el siguiente formato:
1. 0,qe614c760fuk8judu01tn5x055rpt1,true,100.1,14321111111 2. 1,znv1py74o8ynn87k66o32ao4x875wi,true,100.1,14321111111 3. 2,7nm0mtpgo1q0ubuljjjx9b000ybltl,true,100.1,14321111111 4. 3,10t0n6pvonnan16279w848ukko5f6l,true,100.1,14321111111 5. 4,0ub584kw88s6dczd0mta7itmta10jo,true,100.1,14321111111 6. 5,1ltfpf0jt7fhvf0oy4lo8m3z62c940,true,100.1,14321111111 7. 6,zpqsfxqy9379lmcehd7q8kftntrozb,true,100.1,14321111111 8. 7,ce1ga9aln346xcj761c3iytshyzuxg,true,100.1,14321111111 9. 8,k5j2id9a0ko90cykl40s6ojq6gruyi,true,100.1,14321111111 10. 9,ns2zcx9bdip5y0aqd1tdicf7bkdmsm,true,100.1,14321111111 11. 10,54rs9cm1xau2fk66pzyz62tf9tsse4,true,100.1,14321111111En el archivo CSV anterior, cada línea es un registro y los campos están separados por comas (
,). El archivo se guarda en la ruta local/temp/test.csv. El topic de DataHub tiene el siguiente esquema:Nombre del campo
Tipo
id
BIGINT
name
STRING
gender
BOOLEAN
salary
DOUBLE
my_time
TIMESTAMP
Ejecute el siguiente comando:
uf -f /temp/test.csv -p test_topic -t test_topic -m "," -n 1000 -
Descargar datos
down -p test_project -t test_topic -s shardId -d subId -f filePath -ti "1970-01-01 00:00:00" -l 100 -g 0-f: La ruta para guardar el archivo descargado. Para rutas de Windows, debe escapar las barras invertidas (por ejemplo,
D:\\test\\test.txt).-p: El nombre del proyecto.
-t: El nombre del topic.
-s: El ID del shard.
-d: El ID de la suscripción.
-ti: La marca de tiempo a partir de la cual se comenzarán a leer los datos. El cliente leerá los registros creados en este momento o posteriormente. El formato es
yyyy-mm-dd hh:mm:ss.-l: El número de registros que se leerán en cada lote.
-
-g: Especifica si se debe leer de forma continua.
0: Lee solo un lote de registros y luego se detiene.1: Lee de forma continua.
Preguntas frecuentes
El script no se inicia en Windows: Esto puede ocurrir si la ruta del script contiene paréntesis. Para resolverlo, asegúrese de que la ruta completa al script no contenga ningún paréntesis.