[英]How to check if a Java String will fit into Cassandra TEXT column before writing it?
我們支持設計不佳的應用程序。 此應用程序將數據存儲在 TEXT 列中的 Cassandra 集群中,有時會在此列中寫入相當大的字符串,我們會收到WriteFailureException 。
Cassandra 對寫入大小有限制(默認為 16mb:https://docs.datastax.com/en/dse/6.7/dse-admin/datastax_enterprise/config/configCassandra_yaml.html#config_Cassandra_kbab __是greatation.size_size) 我們想通知用戶他們正在嘗試寫入大量數據,以防達到這樣的限制。 據我了解,無法區分此異常是由於此限制還是由於 Cassandra 集群內的任何其他錯誤而發生的。
在嘗試將其寫入 Cassandra之前檢查日期的大小是否超過限制會更好。 Java String is UTF-16, Cassandra's TEXT is UTF-8, so my naive approach is to convert a String to UTF-8 and check it's size like that: s.getBytes(StandardCharsets.UTF_8).lenght()
然而,將字符串轉換為 UTF-8 只是為了將其丟棄似乎相當昂貴。 有沒有理智的方法來做到這一點? 人們如何在編寫數據之前檢查他們的數據是否適合 Cassandra?
Java 8、Cassandra 3.11
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.