Holo Client est une interface propriétaire développée par Hologres et basée sur Java Database Connectivity (JDBC). Conçu pour les écritures de données à haut débit et les requêtes ponctuelles à fort QPS sur Hologres, il intègre la mise en lots et l’optimisation des requêtes afin de pallier les limites de JDBC seul.
Holo Client ne remplace pas l’interface JDBC. Pour les requêtes analytiques en ligne (OLAP), utilisez l’interface JDBC.
Fonctionnalités principales
Holo Client est optimisé pour deux charges de travail principales :
| Charge de travail | Description |
|---|---|
| Écritures à haut débit | Holo Client regroupe automatiquement les enregistrements par lots avant écriture. Cette approche permet d’effectuer des écritures par lots et en temps réel haute performance sur de grands volumes de données. Les opérations DELETE et UPDATE basées sur les clés primaires sont également prises en charge. |
| Requêtes ponctuelles à fort QPS | Holo Client est optimisé pour les jointures de tables de dimension qui nécessitent un grand nombre de requêtes ponctuelles par seconde. |
Outre ces deux cas d’usage principaux, Holo Client offre :
Routage automatique des partitions : Holo Client écrit les données dans la partition appropriée sans intervention manuelle. Inutile de créer les partitions au préalable.
Abonnement au journal binaire (Binlog) : Abonnez-vous au journal binaire (Binlog) de Hologres pour consommer les données en temps réel, comme avec l’interface JDBC.
Prise en charge multilingue : Compatible avec Java, C et Go.
Ajouter Holo Client à votre projet
Holo Client est open source. Chaque version est publiée sur le référentiel Maven Central. Pour consulter les versions disponibles, rendez-vous sur la page Versions de Holo Client.
Déclarez Holo Client comme dépendance via votre outil de build. Remplacez VERSION par la version souhaitée.
Maven
<dependency>
<groupId>com.alibaba.hologres</groupId>
<artifactId>holo-client</artifactId>
<version>VERSION</version>
</dependency>
Gradle
implementation 'com.alibaba.hologres:holo-client:VERSION'
FAQ
Pourquoi la fonction select hologres.hg_internal_refresh_meta(xxx); affiche-t-elle une latence élevée dans les journaux des requêtes lentes ?
Holo Client utilise la fonction hg_internal_refresh_meta pour récupérer les métadonnées de table depuis l’instance. En cas d’exécutions fréquentes d’opérations de langage de définition de données (DDL), la fonction attend que la version des métadonnées du nœud actuel soit mise à jour avant de renvoyer un résultat, ce qui peut prendre beaucoup de temps.
Si vous observez fréquemment ces instructions à latence élevée dans vos journaux de requêtes lentes, c’est que les opérations DDL s’exécutent trop souvent sur l’instance. Réduisez leur fréquence pour maintenir la cohérence des versions de métadonnées entre les nœuds.