Klien Tablestore menyediakan serangkaian metode untuk mengelola tabel dan data di Tablestore. Topik ini menjelaskan cara menggunakan Tablestore SDK untuk Java dalam menginisialisasi klien Tablestore.
Topik ini menggunakan Pasangan Kunci Akses dari akun Alibaba Cloud sebagai contoh. Untuk menginisialisasi klien menggunakan kredensial lainnya, lihat Gunakan Pasangan Kunci Akses dari Pengguna RAM untuk Mengakses Tablestore dan Gunakan Kredensial Akses Sementara dari STS untuk Mengakses Tablestore.
Persiapan
Sebelum menginisialisasi klien Tablestore, peroleh informasi instans, instal Tablestore SDK, dan konfigurasikan kredensial akses.
Peroleh informasi instans
ID Wilayah: ID wilayah dari instans. Sebagai contoh, ID wilayah China (Hangzhou) adalah cn-hangzhou.
Nama instans dan Titik Akhir: Setiap Tablestore instans memiliki titik akhir unik. Aplikasi Anda harus menentukan titik akhir untuk melakukan operasi pada tabel dan data. Untuk memperoleh titik akhir, ikuti langkah-langkah berikut:
Masuk ke Konsol Tablestore.
Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah.
Di halaman Overview, klik alias instans atau klik Manage Instance di kolom Actions.
Di tab Instance Details, periksa nama instans dan titik akhir.
PentingSecara default, akses Internet dinonaktifkan untuk instans baru. Untuk mengakses sumber daya dalam instans melalui Internet, Anda harus mengaktifkan akses Internet untuk instans.
Instal Tablestore SDK
Jika Anda menggunakan proyek Maven, tambahkan dependensi berikut ke file pom.xml proyek:
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>tablestore</artifactId>
<version>5.17.4</version>
</dependency> Untuk informasi lebih lanjut, lihat Instal Tablestore SDK.
Konfigurasikan kredensial akses
Buat Pasangan Kunci Akses untuk akun Alibaba Cloud Anda atau Pengguna RAM, lalu konfigurasikan Pasangan Kunci Akses sebagai variabel lingkungan.
Setelah menyelesaikan konfigurasi, mulai ulang atau segarkan lingkungan pengembangan Anda, seperti IDE, antarmuka baris perintah, aplikasi desktop, atau layanan latar belakang, untuk memuat variabel lingkungan sistem terbaru. Untuk informasi lebih lanjut, lihat Konfigurasikan Kredensial Akses.
Linux
Jalankan perintah berikut di antarmuka baris perintah untuk menambahkan pengaturan variabel lingkungan ke file
~/.bashrc.echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrcJalankan perintah berikut untuk membuat perubahan berlaku:
source ~/.bashrcJalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
macOS
Jalankan perintah berikut di terminal untuk memeriksa tipe Shell default.
echo $SHELLLakukan operasi berdasarkan tipe Shell default.
Zsh
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.zshrc.echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrcJalankan perintah berikut untuk membuat perubahan berlaku:
source ~/.zshrcJalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
Bash
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.bash_profile.echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profileJalankan perintah berikut untuk membuat perubahan berlaku:
source ~/.bash_profileJalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
Windows
CMD
Jalankan perintah berikut di CMD untuk menetapkan variabel lingkungan.
setx TABLESTORE_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"Setelah memulai ulang CMD, jalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:
echo %TABLESTORE_ACCESS_KEY_ID% echo %TABLESTORE_ACCESS_KEY_SECRET%
PowerShell
Jalankan perintah berikut di PowerShell:
[Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:
[Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
Inisialisasi klien
Setelah menginisialisasi klien, panggil metodenya untuk mengakses layanan Tablestore. Tablestore menyediakan SyncClient dan AsyncClient untuk model tabel lebar, serta TimeseriesClient dan AsyncTimeseriesClient untuk model deret waktu. Klien-klien ini mendukung panggilan sinkron dan asinkron.
Klien sinkron dan asinkron keduanya aman-thread. Mereka secara otomatis mengelola thread dan sumber daya koneksi. Jangan buat klien terpisah untuk setiap thread atau permintaan. Dalam aplikasi multi-threaded, bagikan satu objek klien.
Model tabel lebar
Tanda tangan V4 (Direkomendasikan)
Metode sinkron
Kode sampel berikut menunjukkan cara menggunakan tanda tangan V4 untuk menginisialisasi klien dalam mode sinkron, mengambil daftar tabel data dalam instans, dan mencetak daftar tersebut ke konsol.
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.SyncClient;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableResponse;
public class InitSyncClientV4 {
public static void main(String[] args) {
// Ganti yourRegion dengan ID wilayah tempat instans Anda berada, seperti cn-hangzhou.
final String region = "yourRegion";
// Ganti yourInstanceName dengan nama instans Anda.
final String instanceName = "yourInstanceName";
// Ganti yourEndpoint dengan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Buat tanda tangan V4.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);
// Inisialisasi klien Tablestore sinkron.
SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// Daftarkan tabel data dalam instans dan cetak daftar ke konsol.
ListTableResponse listTableResponse = client.listTable();
listTableResponse.getTableNames().forEach(System.out::println);
// Matikan klien Tablestore.
client.shutdown();
}
}Metode asinkron
Kode sampel berikut menunjukkan cara menggunakan tanda tangan V4 untuk menginisialisasi klien dalam mode asinkron, mengambil daftar tabel data dalam instans, dan mencetak daftar tersebut ke konsol.
import com.alicloud.openservices.tablestore.AsyncClient;
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TableStoreCallback;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableRequest;
import com.alicloud.openservices.tablestore.model.ListTableResponse;
import java.util.concurrent.*;
public class InitAsyncClientV4 {
public static void main(String[] args) throws InterruptedException, TimeoutException, ExecutionException {
// Ganti yourRegion dengan ID wilayah tempat instans Anda berada, seperti cn-hangzhou.
final String region = "yourRegion";
// Ganti yourInstanceName dengan nama instans Anda.
final String instanceName = "yourInstanceName";
// Ganti yourEndpoint dengan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Buat tanda tangan V4.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);
// Inisialisasi klien Tablestore asinkron.
AsyncClient client = new AsyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
AsyncClient client = new AsyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
Future<ListTableResponse> future = client.listTable(new TableStoreCallback<ListTableRequest, ListTableResponse>() {
@Override
public void onCompleted(ListTableRequest listTableRequest, ListTableResponse listTableResponse) {}
@Override
public void onFailed(ListTableRequest listTableRequest, Exception e) {}
});
ListTableResponse response = future.get(5, TimeUnit.SECONDS);
if (response.getTableNames() != null) {
response.getTableNames().forEach(System.out::println);
}
// Matikan klien Tablestore.
client.shutdown();
}
}Tanda tangan V2
Metode sinkron
Kode sampel berikut menunjukkan cara menggunakan tanda tangan V2 untuk menginisialisasi klien dalam mode sinkron, mengambil daftar tabel data dalam instans, dan mencetak daftar tersebut ke konsol.
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.SyncClient;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableResponse;
public class InitSyncClientV2 {
public static void main(String[] args) {
// Ganti yourInstanceName dengan nama instans Anda.
final String instanceName = "yourInstanceName";
// Ganti yourEndpoint dengan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Buat tanda tangan V2.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
CredentialsProvider provider = new DefaultCredentialProvider(credentials);
// Inisialisasi klien Tablestore sinkron.
SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// Daftarkan tabel data dalam instans dan cetak daftar ke konsol.
ListTableResponse listTableResponse = client.listTable();
listTableResponse.getTableNames().forEach(System.out::println);
// Matikan klien Tablestore.
client.shutdown();
}
}Metode asinkron
Kode sampel berikut menunjukkan cara menggunakan tanda tangan V2 untuk menginisialisasi klien dalam mode asinkron, mengambil daftar tabel data dalam instans, dan mencetak daftar tersebut ke konsol.
import com.alicloud.openservices.tablestore.AsyncClient;
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TableStoreCallback;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableRequest;
import com.alicloud.openservices.tablestore.model.ListTableResponse;
import java.util.concurrent.*;
public class InitAsyncClientV2 {
public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException {
// Ganti yourInstanceName dengan nama instans Anda.
final String instanceName = "yourInstanceName";
// Ganti yourEndpoint dengan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Buat tanda tangan V2.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
CredentialsProvider provider = new DefaultCredentialProvider(credentials);
// Inisialisasi klien Tablestore asinkron.
AsyncClient client = new AsyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
AsyncClient client = new AsyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
Future<ListTableResponse> future = client.listTable(new TableStoreCallback<ListTableRequest, ListTableResponse>() {
@Override
public void onCompleted(ListTableRequest listTableRequest, ListTableResponse listTableResponse) {}
@Override
public void onFailed(ListTableRequest listTableRequest, Exception e) {}
});
ListTableResponse response = future.get(5, TimeUnit.SECONDS);
if (response.getTableNames() != null) {
response.getTableNames().forEach(System.out::println);
}
// Matikan klien Tablestore.
client.shutdown();
}
}Model deret waktu
Tanda tangan V4 (Direkomendasikan)
Metode sinkron
Kode sampel berikut menunjukkan cara menggunakan tanda tangan V4 untuk menginisialisasi klien dalam mode sinkron, mengambil daftar tabel deret waktu dalam instans, dan mencetak daftar tersebut ke konsol.
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TimeseriesClient;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableResponse;
public class InitTimeseriesClientV4 {
public static void main(String[] args) {
// Ganti yourRegion dengan ID wilayah tempat instans Anda berada, seperti cn-hangzhou.
final String region = "yourRegion";
// Ganti yourInstanceName dengan nama instans Anda.
final String instanceName = "yourInstanceName";
// Ganti yourEndpoint dengan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Buat tanda tangan V4.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);
// Inisialisasi klien Tablestore sinkron.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// Daftarkan tabel deret waktu dalam instans dan cetak daftar ke konsol.
ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);
// Matikan Klien TimeSeries Tablestore.
client.shutdown();
}
}Metode asinkron
Kode sampel berikut menunjukkan cara menggunakan tanda tangan V4 untuk menginisialisasi klien dalam mode asinkron, mengambil daftar tabel deret waktu dalam instans, dan mencetak daftar tersebut ke konsol.
import com.alicloud.openservices.tablestore.AsyncTimeseriesClient;
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TableStoreCallback;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableRequest;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableResponse;
import java.util.concurrent.*;
public class InitAsyncTimeseriesClientV4 {
public static void main(String[] args) throws InterruptedException, TimeoutException, ExecutionException {
// Ganti yourRegion dengan ID wilayah tempat instans Anda berada, seperti cn-hangzhou.
final String region = "yourRegion";
// Ganti yourInstanceName dengan nama instans Anda.
final String instanceName = "yourInstanceName";
// Ganti yourEndpoint dengan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Buat tanda tangan V4.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);
// Inisialisasi klien Tablestore asinkron.
AsyncTimeseriesClient client = new AsyncTimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
AsyncTimeseriesClient client = new AsyncTimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
Future<ListTimeseriesTableResponse> future = client.listTimeseriesTable(new TableStoreCallback<ListTimeseriesTableRequest, ListTimeseriesTableResponse>() {
@Override
public void onCompleted(ListTimeseriesTableRequest listTimeseriesTableRequest, ListTimeseriesTableResponse listTimeseriesTableResponse) {}
@Override
public void onFailed(ListTimeseriesTableRequest listTimeseriesTableRequest, Exception e) {}
});
ListTimeseriesTableResponse response = future.get(5, TimeUnit.SECONDS);
if (response.getTimeseriesTableNames() != null) {
response.getTimeseriesTableNames().forEach(System.out::println);
}
// Matikan klien Tablestore.
client.shutdown();
}
}Tanda tangan V2
Metode sinkron
Kode sampel berikut menunjukkan cara menggunakan tanda tangan V2 untuk menginisialisasi klien dalam mode sinkron, mengambil daftar tabel deret waktu dalam instans, dan mencetak daftar tersebut ke konsol.
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TimeseriesClient;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableResponse;
public class InitTimeseriesClientV2 {
public static void main(String[] args) {
// Ganti yourInstanceName dengan nama instans Anda.
final String instanceName = "yourInstanceName";
// Ganti yourEndpoint dengan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Buat tanda tangan V2.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
CredentialsProvider provider = new DefaultCredentialProvider(credentials);
// Inisialisasi klien Tablestore sinkron.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// Daftarkan tabel deret waktu dalam instans dan cetak daftar ke konsol.
ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);
// Matikan Klien TimeSeries Tablestore.
client.shutdown();
}
}Metode asinkron
Kode sampel berikut menunjukkan cara menggunakan tanda tangan V2 untuk menginisialisasi klien dalam mode asinkron, mengambil daftar tabel deret waktu dalam instans, dan mencetak daftar tersebut ke konsol.
import com.alicloud.openservices.tablestore.AsyncTimeseriesClient;
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TableStoreCallback;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableRequest;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableResponse;
import java.util.concurrent.*;
public class InitAsyncTimeseriesClientV2 {
public static void main(String[] args) throws InterruptedException, TimeoutException, ExecutionException {
// Ganti yourInstanceName dengan nama instans Anda.
final String instanceName = "yourInstanceName";
// Ganti yourEndpoint dengan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Buat tanda tangan V2.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
CredentialsProvider provider = new DefaultCredentialProvider(credentials);
// Inisialisasi klien Tablestore asinkron.
AsyncTimeseriesClient client = new AsyncTimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
AsyncTimeseriesClient client = new AsyncTimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
*/
Future<ListTimeseriesTableResponse> future = client.listTimeseriesTable(new TableStoreCallback<ListTimeseriesTableRequest, ListTimeseriesTableResponse>() {
@Override
public void onCompleted(ListTimeseriesTableRequest listTimeseriesTableRequest, ListTimeseriesTableResponse listTimeseriesTableResponse) {}
@Override
public void onFailed(ListTimeseriesTableRequest listTimeseriesTableRequest, Exception e) {}
});
ListTimeseriesTableResponse response = future.get(5, TimeUnit.SECONDS);
if (response.getTimeseriesTableNames() != null) {
response.getTimeseriesTableNames().forEach(System.out::println);
}
// Matikan klien Tablestore.
client.shutdown();
}
}Pemecahan Masalah
Referensi
Untuk meningkatkan perlindungan kunci, gunakan tanda tangan V4 saat menginisialisasi klien. Untuk informasi lebih lanjut, lihat Keamanan Kunci Pengguna.