Memformat output dari CLI cbt
CLI
cbt memungkinkan Anda memformat data baris Bigtable yang dienkode saat melihat data di terminal. Memformat data membantu Anda memeriksa dan
memecahkan masalah jenis data kompleks langsung dari command line.
Contoh pemformatan
Mulai versi 0.12.0, CLI
cbt dapat memformat
jenis data kompleks tertentu yang disimpan dalam baris tabel.
Saat Anda menggunakan perintah cbt read atau cbt lookup, CLI cbt dapat "pretty print" nilai yang disimpan dalam baris.
Contoh berikut menunjukkan output data dari CLI
cbt
tanpa
pemformatan.
----------------------------------------
r1
fam1:col1 @ 2022/03/09-11:19:45.966000
"\n\x05Brave\x10\x02"
fam1:col2 @ 2022/03/14-11:17:20.014000
"{\"name\": \"Brave\", \"age\": 2}"
Contoh output berikut menunjukkan data dari CLI
cbt
dengan
pemformatan.
r1
fam1:col1 @ 2022/03/09-11:19:45.966000
name: "Brave"
age: 2
fam1:col2 @ 2022/03/14-11:17:20.014000
age: 2.00
name: "Brave"
Mencetak baris dengan pemformatan
Untuk memformat kolom atau grup kolom, Anda harus memberikan file YAML yang
menentukan pemformatan untuk kolom tersebut. Saat memanggil cbt lookup atau
cbt read, Anda meneruskan jalur ke file YAML dengan argumen format-file. Cuplikan berikut menunjukkan contoh pemanggilan cbt lookup dengan
argumen format-file yang diberikan.
cbt lookup my-table r1 format-file=/path/to/formatting.yml
Menentukan format data kolom dalam YAML
File YAML pemformatan harus menghubungkan nama kolom atau nama grup kolom dengan jenis data yang disimpan di dalamnya. Cuplikan berikut menunjukkan contoh file pemformatan YAML.
protocol_buffer_definitions:
- cat.proto
protocol_buffer_paths:
- testdata/
columns:
col1:
encoding: ProtocolBuffer
type: Cat
col2:
encoding: json
Cuplikan berikut menunjukkan isi 'cat.proto'.
syntax = "proto3";
package cats;
option go_package = "github.com/protocolbuffers/protobuf/examples/go/tutorialpb";
message Cat {
string name = 1;
int32 age = 2;
}
Melihat contoh:
- Kolom
protocol_buffer_definitionsmenyediakan daftar file .proto yang dapat berisi jenis pesan buffer protokol untuk digunakan dalam mendekode data protobuf. - Kolom
protocol_buffer_pathsmenyediakan daftar jalur lokal yang dapat berisi file .proto untuk mendekode jenis buffer protokol. Anda tidak perlu menentukan lokasi impor buffer protokol standar, seperti pesan dalam paketgoogle/protobuf. Kolom
columnsberisi daftar nama kolom dengan jenis data yang sesuai untuk setiap kolom:- Kolom
protobufmemilikiencodingyang ditetapkan ke "ProtocolBuffer" dantypeyang ditetapkan ke 'Cat'. CLIcbtmenafsirkan dan memformat semua nilai yang disimpan dalam kolom ini sebagai jenis pesan protoCat. Jenis harus sesuai dengan jenis pesan yang ditentukan dalam salah satu file .proto yang disediakan untuk kolomprotocol_buffer_definition. - Kolom
jsonmemiliki kolomencodingyang ditetapkan ke "json".cbtmenafsirkan dan memformat semua nilai yang disimpan dalam kolom ini sebagai struktur JSON.
- Kolom
Kolom lain yang dapat Anda berikan:
default_encoding: Kolom ini menentukan pemformatan default untuk semua kolom dalam tabel atau semua kolom dalam grup kolom.default_type: Kolom ini menentukan jenis data default untuk kolom yang dienkode dengan buffering protokol, big-endian, dan little-endian.families: Kolom ini menentukan encoding dan jenis untuk semua kolom dalam grup kolom. Anda dapat memberikandefault_encodingdandefault_typeuntuk grup kolom. Anda juga dapat mengganti encoding ini di tingkat kolom dengan memberikan kolomcolumnsyang mencantumkan kolom menurut nama dengan encoding dan jenis data yang sesuai, seperti yang ditunjukkan dalam cuplikan berikut:families: family1: default_encoding: BigEndian default_type: INT64 columns: address: encoding: PROTO type: tutorial.Person
Jenis data yang didukung
CLI
cbt
mendukung pemformatan untuk beberapa jenis data kompleks. Tabel berikut mencantumkan jenis data dan string yang didukung untuk diberikan dalam file YAML bagi setiap jenis daftar. Nilai string tidak peka huruf besar/kecil.
| Jenis data | Memformat nilai untuk YAML |
|---|---|
| Heksadesimal | Hex, H |
| Big-endian | BigEndian, B |
| Little-endian | LittleEndian, L |
| Buffer protokol | ProtocolBuffer, P, PROTO |
| JSON | JSON, J |
Tabel 1. Jenis data yang didukung untuk pemformatan dalam output cbt.
- Encoding heksadesimal tidak bergantung pada jenis. Data ditampilkan sebagai representasi heksadesimal mentah dari data yang disimpan.
- Jenis yang tersedia untuk encoding big-endian dan little-endian adalah
int8,int16,int32,int64,uint8,uint16,uint32,uint64,float32, danfloat64. Panjang data yang disimpan harus kelipatan ukuran jenis, dalam byte. Data ditampilkan sebagai skalar jika panjang yang disimpan cocok dengan ukuran jenis, atau sebagai array jika tidak. Nama jenis tidak peka huruf besar/kecil. - Jenis yang diberikan untuk encoding protocol-buffer harus cocok dengan jenis pesan yang ditentukan dalam file definisi protocol-buffer yang diberikan. Jenis tidak peka huruf besar/kecil. Jika tidak ada jenis yang ditentukan, jenis tersebut secara default adalah nama kolom untuk data kolom yang ditampilkan.
- Nilai pemformatan untuk YAML tidak peka huruf besar/kecil.