このトピックでは、Holo Client の使用方法について説明します。
Holo Client の概要
ビジネスの成長に伴い、データ量は急速に増加します。Hologres は、大量のデータをバッチまたはリアルタイムで効率的に Hologres に書き込み、ディメンションテーブルの結合における高 QPS のポイントクエリを処理するために Holo Client を開発しました。Holo Client は、Java Database Connectivity (JDBC) に基づく独自のインターフェイスです。
Holo Client は、以下の特徴を備えています。
データを自動的にバッチで収集します。これにより、大量データの高性能なバッチおよびリアルタイム書き込みが可能になります。また、プライマリキーに基づく高 QPS のポイントクエリ、DELETE 操作、UPDATE 操作もサポートしています。ただし、OLAP クエリの場合は、JDBC インターフェイスを使用してください。
Holo Client は、対応するパーティションにデータを自動的に書き込みます。これにより、事前にパーティションを作成する必要がありません。
JDBC インターフェイスと同様に、Holo Client は Hologres のバイナリロギング (Binlog) をサブスクライブして、リアルタイムのデータ消費をサポートします。
Java、C、Go などの複数のプログラミング言語をサポートし、開発を簡素化します。
Holo Client は JDBC インターフェイスを置き換えるものではないことに注意してください。JDBC が適していないシナリオ向けに機能を追加するものです。JDBC が適している分析シナリオでは、引き続き JDBC インターフェイスを使用してデータをクエリしてください。
Holo Client の使用
Holo Client はオープンソースです。
各 Holo Client バージョンは、公開されている Maven リポジトリに公開されます。バージョン情報については、「Holo Client Release」をご参照ください。
よくある質問
問題の説明:
システム SQL ステートメント
select hologres.hg_internal_refresh_meta(xxx);を実行すると、高いレイテンシーが発生します。原因:
Holo Client は、
hg_internal_refresh_meta関数を使用して、インスタンス内のテーブルのメタデータを取得します。インスタンスで DDL 操作が頻繁に実行される場合、この関数は現在のノードのメタデータバージョンが更新されるまで待機してから結果を返します。このプロセスには時間がかかることがあります。解決策:
通常、このシステム SQL ステートメントの実行時間は問題になりません。ただし、これらの高レイテンシーの SQL ステートメントがスロークエリログに多数記録されている場合は、インスタンスで DDL 操作が頻繁に行われていることを示します。この場合、ノード間のバージョン不整合を防ぐために、DDL 操作の頻度を減らしてください。