I have create the following table:
CREATE TABLE IF NOT EXISTS "events" (
"product.name" VARCHAR(32),
"event.name" VARCHAR(32),
"event.uuid" VARCHAR(32),
CONSTRAINT pk PRIMARY KEY ("event.uuid")
)
Inserting an event:
upsert into "events" ("event.uuid", "event.name", "product.name") values('1', 'click', 'api')
Getting data from HBase shell:
hbase(main):020:0> scan 'events'
ROW COLUMN+CELL
1 column=0:_0, timestamp=1449417795078, value=
1 column=0:event.name, timestamp=1449417795078, value=click
1 column=0:product.name, timestamp=1449417795078, value=api
1 row(s) in 0.0200 seconds
No column familty ;-(
From HBase shell, trying to insert data:
hbase(main):021:0> put 'events', '2', 'event:name','buy'
ERROR: Unknown column family! Valid column names: 0:*
Why?
The ADD COLUMN form adds a new column to the table using the same syntax as CREATE TABLE. The ALTER COLUMN form allows you to set or remove the default for the column.
All table, column family and column names are uppercased unless they are double quoted in which case they are case sensitive. Column families that exist in the HBase table but are not listed are ignored.
A double quoted identifier makes it case sensitive, so if you want both the column family and the column name to be case sensitive, you'll need to surround them each separately in double quotes like this:
CREATE TABLE IF NOT EXISTS "events" (
"product"."name" VARCHAR(32),
"event"."name" VARCHAR(32),
"event"."uuid" VARCHAR(32),
CONSTRAINT pk PRIMARY KEY ("event"."uuid")
)
and then upsert like this:
UPSERT INTO "events" ("event"."uuid", "event"."name", "product"."name")
VALUES ('1', 'click', 'api')
Qualifying the column name with the column family name is not required in the UPSERT statement unless the column name is ambiguous. If you don't need to match the format of existing data, another alternative is to just not double quote anything. Otherwise, for an example, see this FAQ.
FWIW, best place to ask question is on our dev or user mailing lists.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With