LindormTable permite usar la API de ApsaraDB for HBase para Java para leer y escribir datos. Este tema describe cómo utilizar dicha API para conectarse a LindormTable.
Requisitos previos
Tener instalado Java Development Kit (JDK) V1.8 o posterior.
La dirección IP de su cliente debe estar agregada a la lista de permitidos de la instancia de Lindorm. Para obtener más información, consulte Configure a whitelist.
Tener instalado el SDK de ApsaraDB for HBase para Java. Para obtener más información, consulte Install ApsaraDB for HBase SDK for Java.
Procedimiento
-
Cree un objeto de configuración y configure el endpoint, el nombre de usuario y la contraseña que se usarán para conectarse a LindormTable.
// Create a configuration object. Configuration conf = HBaseConfiguration.create(); Specify the endpoint used to connect to LindormTable by using ApsaraDB for HBase SDK for Java. conf.set("hbase.zookeeper.quorum", "host:port"); // xml_template.comment.hbaseue.username_password.default conf.set("hbase.client.username", "Username"); conf.set("hbase.client.password", "Password");Parámetro
Ejemplo
Método para obtener el valor del parámetro
host:puerto
ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30020
El endpoint de LindormTable que se muestra tras hacer clic en Access by Using HBase Java API dentro de la pestaña Wide Table Engine en la consola de Lindorm.
ImportanteSi su aplicación está desplegada en una instancia de Elastic Compute Service (ECS), se recomienda conectarse a la instancia de Lindorm mediante una Virtual Private Cloud (VPC) para lograr mayor seguridad y menor latencia de red. Para más detalles sobre cómo obtener el endpoint de LindormTable para VPC, consulte View endpoints.
Si su aplicación se encuentra en un servidor local y requiere conexión a la instancia de Lindorm a través de Internet, siga estos pasos para habilitar el endpoint público desde la consola de Lindorm: en el panel de navegación izquierdo, seleccione . En la pestaña Wide Table Engine, haga clic en Enable Public Endpoint.
Nombre de usuario
testuser
El nombre de usuario y la contraseña necesarios para conectarse a la instancia de Lindorm. Si olvidó la contraseña, puede cambiarla desde el sistema de gestión de clústeres de LindormTable. Para más información, consulte Change the password of a user.
Contraseña
password
-
Utilice el objeto de configuración creado en el paso 1 para establecer la conexión.
Connection connection = ConnectionFactory.createConnection(conf);NotaLa conexión se crea una sola vez durante el ciclo de vida del programa. Dado que es segura para hilos, puede compartirse entre todos ellos. // Una vez que el programa deje de ejecutarse, cierre el objeto Connection para evitar fugas de conexión. También puede emplear la sentencia try-finally con el mismo propósito.
-
Una vez establecida la conexión, utilice la API de ApsaraDB for HBase para Java para acceder a LindormTable. Puede tomar como referencia los siguientes ejemplos de código Java.
-
Operaciones DDL
try (Admin admin = connection.getAdmin()){ // Create a table. HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("tablename")); htd.addFamily(new HColumnDescriptor(Bytes.toBytes("family"))); // Create a table that has only one partition. // If you create a table in a production environment, we recommend that you partition the table in advance based on the data characteristics. admin.createTable(htd); // Disable a table. admin.disableTable(TableName.valueOf("tablename")); // Clear all data in a table. You must disable a table before you clear all data in it. admin.truncateTable(TableName.valueOf("tablename"), true); // Delete a table. You must disable a table before you delete it. admin.deleteTable(TableName.valueOf("tablename")); } -
Operaciones DML
// A table is a non-thread-safe object. When a thread performs operations on a table, the thread must obtain the required table from the Connection object. try (Table table = connection.getTable(TableName.valueOf("tablename"))) { // Insert data. Put put = new Put(Bytes.toBytes("row")); put.addColumn(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), Bytes.toBytes("value")); table.put(put); // Read a single row of data. Get get = new Get(Bytes.toBytes("row")); Result res = table.get(get); // Delete a row of data. Delete delete = new Delete(Bytes.toBytes("row")); table.delete(delete); // Scan the data within the specified range. Scan scan = new Scan(Bytes.toBytes("startRow"), Bytes.toBytes("endRow")); ResultScanner scanner = table.getScanner(scan); for (Result result : scanner) { // Process the result. System.out.println(result.toString()); } scanner.close(); }
-