Todos los productos
Search
Centro de documentos

:Acceso a LindormTable mediante un SDK de HBase que no sea de Java

Última actualización: Sep 05, 2026

El motor de columnas anchas de Lindorm admite el acceso a través de API de HBase que no son de Java, como C++, Python y Go. Este tema describe cómo instalar el SDK y acceder al servicio.

Contexto

El motor de tablas anchas de Lindorm permite el acceso desde lenguajes distintos a Java (como C++, Python y Go) mediante Thrift.

El motor de tablas anchas de Lindorm utiliza la definición de interfaz HBase Thrift2, por lo que es necesario descargar el archivo de definición de HBase Thrift2 para generar las interfaces específicas del lenguaje. En comparación con la definición de HBase Thrift1, la definición de interfaz HBase Thrift2 en Lindorm es más clara y ofrece una experiencia de llamada a la API similar a la de Java. Actualmente, el archivo de definición de HBase Thrift2 proporciona funciones más completas y resulta más fácil de usar que el archivo de definición de HBase Thrift1.

Requisitos previos

  • Descargue el paquete de instalación de Thrift.

  • Descargue el archivo de definición de HBase Thrift2.

  • Obtenga el endpoint para Access by using a non-Java ApsaraDB for HBase API. Para obtener más información, consulte View endpoints. En la página Database connection de su instancia de Lindorm, seleccione la pestaña LindormTable, expanda la sección ApsaraDB for HBase-compatible endpoints y copie el endpoint HTTP de la sección Access by using a non-Java ApsaraDB for HBase API correspondiente a la VPC o a la red pública. El puerto es 9190.

Acceso a LindormTable (ejemplo en Python)

Para obtener instrucciones sobre cómo usar el paquete de instalación de Thrift, consulte la documentación oficial de Apache Thrift. A continuación se describen los pasos para usar Thrift y acceder a LindormTable:

  1. Use el archivo de definición de HBase Thrift2 para generar los archivos de interfaz del lenguaje deseado. Ejecute el siguiente comando:

    thrift --gen <language> hbase.thrift
    Nota

    El parámetro language especifica la bandera del generador para el lenguaje destino, como py para Python, php, o cpp. Para consultar la lista completa de lenguajes compatibles y sus banderas de generador correspondientes, revise la documentación oficial de Apache Thrift.

    Por ejemplo, para generar los archivos de interfaz de Python, establezca el parámetro language en py y ejecute el siguiente comando:

    thrift --gen py hbase.thrift
  2. Cree un cliente para acceder al motor de tablas anchas de Lindorm.

    El servidor Thrift en Lindorm usa HTTP para su capa de transporte. Por lo tanto, debe usar la implementación de transporte ThttpClient al crear un cliente. Si la lista de control de acceso (ACL) está habilitada para su instancia, agregue dos encabezados personalizados al objeto ThttpClient para transmitir el nombre de usuario y la contraseña. Este paso no es necesario si la ACL está deshabilitada. Cada implementación específica de lenguaje de ThttpClient proporciona una función para establecer encabezados personalizados. El siguiente ejemplo en Python muestra cómo crear un cliente y acceder a LindormTable.

    # -*- coding: utf-8  -*-
    # The following two modules are generated by running the 'pip install thrift' command.
    from thrift.protocol import TBinaryProtocol
    from thrift.transport import THttpClient
    # The following two modules are generated by running the 'thrift --gen py hbase.thrift' command.
    from hbase import THBaseService
    from hbase.ttypes import TColumnValue, TColumn, TTableName, TTableDescriptor, TColumnFamilyDescriptor, TNamespaceDescriptor, TGet, TPut, TScan
    # Configure the endpoint for LindormTable.
    url = "http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9190"
    transport = THttpClient.THttpClient(url)
    headers = {}
    # Set the username.
    headers["ACCESSKEYID"]="testuser";
    # Set the password for the username.
    headers["ACCESSSIGNATURE"]="password"
    transport.setCustomHeaders(headers)
    protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport)
    client = THBaseService.Client(protocol)
    transport.open()
    # Close the connection after completing the operations.
    transport.close()

Ejemplos de código

Los ejemplos de código completos para otros lenguajes distintos a Java están disponibles en los siguientes enlaces de GitHub.