Great!
I realized that my confusion was that I forgot about the salt byte at
the first position in the key.
Here's the working code if someone needs to do the same thing.
Thanks again James.
HBaseClient client = new HBaseClient("zookeeper");
Scanner scanner = client.newScanner("T1");
My mistake - I thought you were going to do an in-place upgrade. No, no
post processing will be required if the data is UPSERT'ed through the
standard Phoenix APIs.
I don't know how/why your row keys aren't the correct number of bytes.
Maybe your row key is different than what you think?
Thanks,
My concern regarding the row key is that they are 23 bytes in reality
instead of 26 bytes? Hmm. Guess I could write a value manually using
SQL and inspect it afterwards using asynchbase to find where those 3
missing bytes went.
Not sure I understand the post procedure. I'm not trying to do an
in-p
Your analysis of the row key structure is correct. Those are all fixed
types (4 + 4 + 8 +8 + 2 = 26 bytes for the key).
If you're going from 0.94 to 0.98, there's stuff you need to do to get your
data into the new format. Best to ask about this on the HBase user list or
look it up in the reference
My plan is to try use asynchbase to read the raw data and then upsert
it using Phoenix SQL.
However, when I read the old table the data types for the row key
doesn't add up.
CREATE TABLE T1 (C1 INTEGER NOT NULL, C2 INTEGER NOT NULL, C3 BIGINT
NOT NULL, C4 BIGINT NOT NULL, C5 CHAR(2) NOT NULL, V B
Hi
We're in the process of upgrading from Phoenix 2.2.3 / HBase 0.96 to
Phoneix 4.4.0 / HBase 1.1.2 and wanted to know the simplest/easiest
way to copy data from old-to-new table.
The tables contain only a few hundred million rows so it's OK to
export locally and then upsert.
Cheers,
-Kristoffer