本文將為您介紹Holo Client的使用。
Holo Client介紹
隨著業務發展,企業數據量也迅猛增加,為了更高效的支持大批量數據的寫入(批量、實時同步至Hologres),以及支持高QPS的點查(維表關聯)場景,Hologres在JDBC的基礎上自研了一款開發接口Holo Client。
Holo Client優勢以及使用場景如下。
自動攢批,實現大批量數據高性能批量、實時寫入以及高QPS基于主鍵的查詢(點查)、刪除(DELETE)以及更新(UPDATE),但OLAP查詢更建議使用JDBC接口。
針對分區表場景,寫入時能自動路由對應分區,減少分區提前創建的復雜操作。
同JDBC接口一致,支持訂閱Hologres Binlog,實現數據的實時消費。
支持Java、C、Go等多種編程語言,提升開發的便捷性。
需要注意的是,Holo Client不是替代JDBC接口,而是豐富了JDBC接口不適配的新增功能,在JDBC適合的分析場景,請繼續使用JDBC接口查詢數據。
使用Holo Client
Holo Client當前已經開源,使用詳情請參見Holo Client。
Holo Client每個版本都會發布到公網Maven倉庫,版本信息請參見Holo Client Release。
常見問題
問題現象:
使用系統SQL
select hologres.hg_internal_refresh_meta(xxx);
時,延遲高。問題原因:
Holo Client將會通過
hg_internal_refresh_meta
函數獲取實例中表的元(Meta)信息。如果實例進行了比較頻繁的DDL操作,該函數需要等到當前節點元信息版本更新才會返回,導致耗時較高。解決方法:
一般情況下該系統SQL的耗時不需要特別關注。如果慢Query日志中,出現大量該SQL,且延遲較高,說明實例的DDL較頻繁,建議減少DDL操作頻率,以免出現節點間版本不一致的情況。