0

我们计划使用 hbase rest api 对 hbase 表执行插入操作,并想知道是否有办法将多个列插入单个列族,甚至在一次调用中插入多个列族。

如果不是,因为我们计划为特定记录(行)插入大约 100+ 列,这将导致我们对单个行条目进行 100+ 次调用

4

1 回答 1

2

您可以在单个 PUT 操作中为单个/多个列族插入多个列。 --datapayload 包含keyand CellSet, CellSet 包含 base64 编码值cf:columnname$包含 base64 编码值 column value。

例如 :

  { "Row":[
      {
         "key":"d3d3LnNvbWVzaXRlLmNvbQ==",
         "Cell":[
            {
               "column":"QXV0aG9yczp0ZXN0MQ==",  // It can be cf1:name
               "$":"c29tZURhdGE="
            },
            {
               "column":"QXV0aG9yczp0ZXN0Mg==", // It can be cf2:address
               "$":"bW9yZURhdGE="
            }
         ]
      }
   ]
}

最终的 curl 命令将如下所示:

curl -vi -X PUT \
         -H "Accept: text/json" \
         -H "Content-Type: text/json" \
         -d '{"Row":[{"key":"d3d3LnNvbWVzaXRlLmNvbQ==","Cell":[{"column":"QXV0aG9yczp0ZXN0MQ==","$":"c29tZURhdGE="},{"column":"QXV0aG9yczp0ZXN0Mg==","$":"bW9yZURhdGE="}]}]}' \
         "localhost:20550/table/rowkey"
于 2019-02-13T21:51:19.873 回答