LindormTable, verileri okumak ve yazmak için Java için ApsaraDB for HBase API'sini kullanmanıza olanak tanır. Bu konu, Java için ApsaraDB for HBase API'sini kullanarak LindormTable'a nasıl bağlanacağınızı açıklar.
Önkoşullar
Java Development Kit (JDK) V1.8 veya sonraki bir sürüm yüklenmiştir.
İstemcinizin IP adresi, Lindorm örneğinin izin listesine eklenmiştir. Daha fazla bilgi için bkz. İzin listesi yapılandırma.
Java için ApsaraDB for HBase SDK yüklüdür. Daha fazla bilgi için bkz. Java için ApsaraDB for HBase SDK'yı yükleme.
Yordam
-
LindormTable'a bağlanmak için kullanılan uç nokta, kullanıcı adı ve parolayı yapılandıran bir yapılandırma nesnesi oluşturun.
// 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");Parametre
Örnek
Parametre değerini elde etme yöntemi
host:port
ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30020
Lindorm konsolunun Geniş Tablo Altyapısı sekmesindeki Access by Using HBase Java API seçeneğinden sonra görüntülenen LindormTable uç noktası.
ÖnemliUygulamanız bir Elastic Compute Service (ECS) örneğinde dağıtılmışsa, daha yüksek güvenlik ve daha düşük ağ gecikme süresi için Lindorm örneğine bir Virtual Private Cloud (VPC) üzerinden bağlanmanızı öneririz. VPC için LindormTable uç noktasının nasıl alınacağı hakkında daha fazla bilgi için bkz. Uç noktaları görüntüleme.
Uygulamanız yerel bir sunucuda dağıtılmışsa ve Lindorm örneğine İnternet üzerinden bağlanması gerekiyorsa, Lindorm konsolunda örnek için genel uç noktayı etkinleştirmek üzere aşağıdaki adımları uygulayabilirsiniz: Sol gezinme bölmesinde öğesini seçin. Wide Table Engine sekmesinde Enable Public Endpoint seçeneğini tıklayın.
Kullanıcı Adı
testuser
Lindorm örneğine bağlanmak için kullandığınız kullanıcı adı ve parola. Parolanızı unutursanız, LindormTable'ın küme yönetim sisteminde parolayı değiştirebilirsiniz. Daha fazla bilgi için bkz. Kullanıcı parolasını değiştirme.
Parola
password
-
Adımda oluşturduğunuz yapılandırma nesnesini kullanarak bir bağlantı kurun.
Connection connection = ConnectionFactory.createConnection(conf);NotBağlantı, programın yaşam döngüsü sırasında yalnızca bir kez oluşturulur. Bağlantı iş parçacığı açısından güvenlidir ve tüm iş parçacıkları arasında paylaşılabilir. // Program çalışmayı durdurduktan sonra, bağlantı sızıntısını önlemek için Connection nesnesini kapatın. Bağlantı sızıntısını önlemek için try-finally ifadesini de kullanabilirsiniz.
-
Bağlantıyı kurduktan sonra LindormTable'a erişmek için Java için ApsaraDB for HBase API'sini kullanın. Aşağıdaki örnek Java kodunu kullanabilirsiniz.
-
DDL işlemleri
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")); } -
DML işlemleri
// 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(); }
-