Dokumen ini menjawab pertanyaan umum terkait penggunaan HBase SQL (Phoenix).
Paket JAR apa saja yang telah dirilis di versi terbaru ali-phoenix di repositori pusat Maven?
- Dependensi ali-phoenix 4.x:
GroupId ArtifactId Versi Terbaru com.aliyun.phoenix ali-phoenix 4.12.0-AliHBase-1.1-0.9 com.aliyun.phoenix ali-phoenix-hive 4.12.0-AliHBase-1.1-0.9 com.aliyun.phoenix ali-phoenix-spark 4.12.0-AliHBase-1.1-0.9 com.aliyun.phoenix ali-phoenix-pherf 4.12.0-AliHBase-1.1-0.9 com.aliyun.phoenix ali-phoenix-queryserver 4.12.0-AliHBase-1.1-0.9 com.aliyun.phoenix ali-phoenix-queryserver-client 4.12.0-AliHBase-1.1-0.9 com.aliyun.phoenix ali-phoenix-pig 4.12.0-AliHBase-1.1-0.9 com.aliyun.phoenix ali-phoenix-flume 4.12.0-AliHBase-1.1-0.9 com.aliyun.phoenix ali-phoenix-core 4.12.0-AliHBase-1.1-0.9 - Dependensi ali-phoenix 5.x:
GroupId ArtifactId Versi Terbaru com.aliyun.phoenix ali-phoenix-shaded-thin-client 5.2.5-HBase-2.x com.aliyun.phoenix ali-phoenix-shaded-thin-client 5.2.5-HBase-2.x Catatan Disarankan menggunakan klien berbayangan untuk menghindari masalah ketidakcocokan antara klien dan dependensi pihak ketiga.
Apa format string koneksi JDBC ali-phoenix?
- Driver klien tebalConnection string syntax
Connection string examplejdbc:phoenix:[[ZK_HOST1:port, ZK_HOST2:port, ZK_HOST3:port | ZooKeeper Quorum dipisahkan koma [:port] [:hbase root znode] ]jdbc:phoenix:localhost jdbc:phoenix:localhost:123:/hbase jdbc:phoenix:v1,v2,v3:123:/hbase jdbc:phoenix:v1:2181,v2:2181,v3:2181:/hbase jdbc:phoenix:v1:2181,v2:2181,v3:2181 - Driver klien tipisConnection string syntax
jdbc:phoenix:thin:[key=value[;key=value...]]Connection string examplejdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF
Apakah ApsaraDB for HBase mendukung Query Server?
- ApsaraDB for HBase 1.x menggunakan klien tebal Phoenix 4.x. Anda perlu membuat layanan Query Server secara manual.
- ApsaraDB for HBase 2.0 mendukung layanan HBase SQL. Secara default, Query Server diaktifkan untuk ApsaraDB for HBase 2.0.
Apakah aplikasi web dapat dilacak?
Tidak, ali-phoenix di ApsaraDB for HBase belum mendukung pelacakan aplikasi web. Fitur ini akan segera tersedia.
Apa yang harus saya lakukan jika indeks sekunder habis waktu saat saya membuat tugas sinkronisasi?
<property>
<name>hbase.rpc.timeout</name>
<value>60000000</value>
</property>
<property>
<name>hbase.client.scanner.timeout.period</name>
<value>60000000</value>
</property>
<property>
<name>phoenix.query.timeoutMs</name>
<value>60000000</value>
</property>Untuk Phoenix 5.x di ApsaraDB for HBase 2.0, modifikasi parameter tersebut di konsol ApsaraDB for HBase dan mulai ulang layanan HBase SQL. Perhatikan bahwa Anda tidak perlu memulai ulang HBase.Bagaimana cara mengaktifkan pemetaan namespace?
- Aktifkan pemetaan namespace untuk ali-phoenix 4.x.
- Tambahkan konfigurasi berikut ke klien:
<property> <name>hbase.rpc.timeout</name> <value>60000000</value> </property> <property> <name>hbase.client.scanner.timeout.period</name> <value>60000000</value> </property> <property> <name>phoenix.query.timeoutMs</name> <value>60000000</value> </property> - Hubungi grup Q&A ApsaraDB for HBase untuk mengaktifkan fitur ini di server HBase.
- Mulai ulang kluster HBase.
- Tambahkan konfigurasi berikut ke klien:
- Aktifkan pemetaan namespace untuk ali-phoenix 5.x.
- Masuk ke konsol ApsaraDB for HBase.
- Konfigurasikan parameter.
Atur parameter
phoenix.schema.isNamespaceMappingEnableddanphoenix.schema.mapSystemTablesToNamespacemenjadi true. - Mulai ulang kluster HBase.
- Mulai ulang layanan HBase SQL.
Catatan Anda harus mengonfigurasi parameter ini padaquery serverdanHBase server. Deskripsi parameter pada kedua server tersebut berbeda.
Apakah kolam koneksi didukung?
Kolam koneksi didukung oleh Phoenix 4.12.0.X. Untuk informasi lebih lanjut, lihat PhoenixConnectionPool.java.
Phoenix 5.x menggunakan klien tipis, sehingga Anda tidak dapat menggunakan PhoenixConnectionPool.java untuk membuat kolam koneksi. Disarankan menggunakan kolam koneksi pihak ketiga seperti MyBatis. Untuk informasi lebih lanjut, lihat Demo kolam koneksi.
Apakah saya dapat memutuskan klien saya jika terlalu lama untuk membuat indeks?
Tidak, jangan memutuskan klien Anda. Proses pembuatan indeks terdiri dari dua langkah. Pada Langkah 1, server menyinkronkan data dari tabel sumber ke tabel indeks. Pada Langkah 2, klien mengirim permintaan untuk mengubah status tabel indeks menjadi aktif. Biasanya, pada Langkah 1, klien mengirim permintaan ke server, dan server memprosesnya.
Berapa lama waktu yang dibutuhkan untuk membuat tabel indeks dan menyinkronkan data indeks?
Secara umum, diperlukan waktu 5 hingga 20 menit untuk membuat indeks pada 10 juta baris data. Durasi bergantung pada spesifikasi kluster dan jumlah sumber daya komputasi.
Apa yang harus saya lakukan jika terlalu lama untuk membuat indeks dan koneksi klien saya ditutup secara otomatis?
- Eksekusi pernyataan
ALTER INDEXuntuk membangun ulang indeks. - Hapus tabel indeks dalam status building, atur waktu timeout koneksi klien ke nilai yang lebih besar, dan bangun ulang indeks.
Bagaimana cara mengimpor data dari database relasional ke tabel Phoenix di ApsaraDB for HBase?
Gunakan DataX atau CDP. Untuk informasi lebih lanjut tentang DataX, kunjungi https://github.com/alibaba/DataX.
Apa yang harus saya lakukan jika pesan kesalahan ERROR 599(42912): Default enable Force index, please set phoenix.force.index=false to disable it...., dikembalikan saat saya meminta data?
Sistem secara otomatis memeriksa apakah kolom kunci utama atau kolom indeks digunakan sebagai kondisi query saat mengompilasi pernyataan SQL. Ini membantu menghindari pemindaian tabel penuh. Jika tidak ada kolom kunci utama atau indeks yang ditentukan sebagai kondisi query, kesalahan ini muncul. Jika Anda perlu menggunakan kolom selain kunci utama atau kolom indeks sebagai kondisi query, gunakan metode berikut untuk menyelesaikan masalah ini. Untuk Phoenix 4.x, buka file konfigurasi klien hbase-site.xml dan atur phoenix.force.index menjadi false. Kemudian, mulai ulang klien. Untuk Phoenix 5.x, atur phoenix.force.index menjadi false di konsol ApsaraDB for HBase, dan mulai ulang layanan HBase SQL.
Apa yang harus saya lakukan jika pesan kesalahan java.sql.SQLException: java.lang.IllegalArgumentException: Connection is null or closed dikembalikan saat saya menggunakan kolam koneksi Druid di Spring Boot?
Phoenix menyimpan cache informasi koneksi. Jika Anda menambahkan koneksi ini ke kolam koneksi, koneksi tidak dihapus dari kolam saat ditutup. Akibatnya, pesan kesalahan ini muncul saat sistem ingin menggunakan kembali koneksi yang telah ditutup. Oleh karena itu, disarankan agar Anda tidak menggunakan kolam koneksi Druid.
Saat saya menggunakan koneksi idle yang dibuat antara klien Python dan query server untuk meminta data, apa yang harus saya lakukan jika pesan kesalahan berikut dikembalikan:phoenixdb.errors.InternalError: ('', None, None, None)
- Unduh klien phoenix-python Alibaba Cloud.
- Jika Anda sudah menginstal driver phoenix-python, jalankan perintah berikut untuk menghapusnya:
rm -rf /usr/lib/python${version}/site-packages/phoenixdb* - Ekstrak paket yang diunduh, navigasikan ke direktori phoenixdb, dan jalankan perintah berikut untuk menginstal driver:
python setup.py install
Apakah Phoenix mendukung multitenancy?
Tidak, Phoenix tidak mendukung multitenancy. Perintah seperti grant dan revoke tidak didukung.