LindormTable vous permet de lire et d'écrire des données à l'aide de l'API ApsaraDB for HBase pour Java. Cette rubrique explique comment utiliser cette API pour vous connecter à LindormTable.
Prérequis
Le kit de développement Java (JDK) version 1.8 ou ultérieure est installé.
L'adresse IP de votre client figure dans la liste d'autorisation de l'instance Lindorm. Pour plus d'informations, consultez la section Configurer une liste d'autorisation.
Le SDK ApsaraDB for HBase pour Java est installé. Pour en savoir plus, reportez-vous à la page Installer le SDK ApsaraDB for HBase pour Java.
Procédure
-
Créez un objet de configuration et spécifiez l'endpoint, le nom d'utilisateur et le mot de passe utilisés pour la connexion à 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");Paramètre
Exemple
Méthode d'obtention de la valeur du paramètre
host:port
ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30020
L'endpoint LindormTable affiché après avoir cliqué sur Access by Using HBase Java API dans l'onglet Wide Table Engine de la console Lindorm.
ImportantSi votre application est déployée sur une instance Elastic Compute Service (ECS), nous vous recommandons de vous connecter à l'instance Lindorm via un réseau privé virtuel (VPC) pour bénéficier d'une sécurité accrue et d'une latence réseau réduite. Pour obtenir l'endpoint LindormTable dédié au VPC, consultez la page Afficher les endpoints.
Si votre application est hébergée sur un serveur local et doit se connecter à l'instance Lindorm via Internet, activez l'endpoint public de l'instance depuis la console Lindorm en suivant ces étapes : dans le volet de navigation de gauche, sélectionnez . Dans l'onglet Wide Table Engine, cliquez sur Enable Public Endpoint.
Nom d'utilisateur
testuser
Le nom d'utilisateur et le mot de passe utilisés pour la connexion à l'instance Lindorm. Si vous avez oublié le mot de passe, vous pouvez le modifier depuis le système de gestion de cluster de LindormTable. Pour plus de détails, voir Modifier le mot de passe d'un utilisateur.
Mot de passe
password
-
Établissez la connexion à l'aide de l'objet de configuration créé à l'étape précédente.
Connection connection = ConnectionFactory.createConnection(conf);RemarqueLa connexion n'est créée qu'une seule fois durant le cycle de vie du programme. Elle est thread-safe et peut être partagée entre tous les threads. // Une fois l'exécution du programme terminée, fermez l'objet Connection afin d'éviter toute fuite de connexion. Vous pouvez également utiliser une instruction try-finally pour prévenir ce type de fuite.
-
Une fois la connexion établie, utilisez l'API ApsaraDB for HBase pour Java afin d'accéder à LindormTable. Le code Java ci-dessous illustre cette démarche.
-
Opérations 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")); } -
Opérations 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(); }
-