簡體   English   中英

從 BigTable 解碼二進制數據

[英]Decoding BInary Data from BigTable

我想使用 CLI 工具cbt或 Python API 來解碼來自 Google Cloud BigTable 的響應。 我將此命令與cbt一起使用僅從表中讀取一行

cbt read <table-name> count=1 

這是返回不可讀的二進制數據。

此查詢使用 Python API

building_table_row = building_table.scan(limit= 1)

正在返回類似的響應:

p:pattern                                @ 2021/08/20-20:58:10.519000
    
NPY\x00p\x14j\x11streak-accuraciesn\x04d\x01d\x01\x00\x00j\rmin-drawdownsn\x047=\xbff\xaf$\xf1\xf3i\x0077j\ngain-ratesn\x04=?\x8f\xad\xc5\xf3\x05\xde\x00=?\x8f\xad\xc5\xf3\x05\xde\x0077j\x15extended-sharpe-ratio=?\xf6%\xd1\xefh\xa5\xf7j\rmax-drawdownsn\x047=?\x9e\x0f\x8f\xe7n\xa8@77j\adates-rrq+\x00\x00\x01j\xfb\xbc\x90\x00+\x00\x00\x01j\xfb\xbc\x90\x00q+\x00\x00\x01rSm\xbc\x00+\x00\x00\x01rSm\xbc\x00q+\x00\x00\x01y\xab\x1e\xe8\x00+\x00\x00\x01y\xab\x1e\xe8\x00j\againsesn\x04r=?\x91\u007f\x0e\xd9\xea\x00@=?Q\x1fs\x85\xd80\x00=?\x9c\xf3\xa2\xdaAI\xc0r=?\x91\u007f\x0e\xd9\xea\x00@=?Q\x1fs\x85\xd80\x00=?\x9c\xf3\xa2\xdaAI\xc0r777r777j\x06symboli\bSPGSAL.Xj\x12extended-gain-rate=?\x8f\xad\xc5\xf3\x05\xde\x00j\fsharpe-ratio=?\xf6%\xd1\xefh\xa5\xf7j\x04partqd\x05d\x1bj\x0fpartition-countd\x03j\x04year*\x00\x00\a\xe5j\x0faverage-move-up=?\x8f\xad\xc5\xf3\x05\xde\x00j\x18extended-streak-accuracyd\x01j\astd-dev7j\x11average-move-down\x00j\vsd-of-gains=?\x86⬷r\xd5fj\x06rating7j\rstreak-lengthd\x01"

我嘗試使用row.decode('utf-8')解碼, row.decode('utf-8')不起作用。

如何解碼來自 BigTable 的響應?

for (Row row : rows) { // here you have rows from bigtable
        finalList.addAll(row.getCells(COLUMN_FAMILY, COLUMN_QUALIFIER).stream()
                                .map(rowCell -> GsonUtility.JAVA_BASED_GSON.fromJson(rowCell.getValue().toStringUtf8(), MyObject.class)) // converting binery cell data to MyObject
                                .collect(Collectors.toList())); // collect objects as list
           }
            
            
        // here is util for converting to Object    
    ublic <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
        Object object = this.fromJson((String)json, (Type)classOfT);
        return Primitives.wrap(classOfT).cast(object);
    }

祝你好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM