Hey Reid, AFAIK, there is no official Phoenix tool to copy table between clusters. IMO, it would be great to have an official tool to copy tables. In our case, source and destination clusters are running Phoenix4.7. IMO, copy between 4.7-4.14 might have some version incompatibility. So, you might need to test following in non-prod first.
Approach 1: We usually move tables by taking a snapshot of hbase table, exporting the snapshot to remote cluster, create Phoenix table, delete underlying hbase table, and restoring the snapshot. Please keep in mind that you will need to do similar exercise if your table has secondary indexes since they are stored in another hbase table. Also, make sure that you don’t have any live traffic to Phoenix table in destination cluster until restoring of snapshot and verification of data in table. Approach 2: Use copyTable util of hbase. In this case, you will just need to create Phoenix table on remote cluster and then kick off hbase copy table. In this approach also, you will need to perform copyTable for each secondary index. We usually use approach1 because it’s usually faster and doesn’t puts write load on cluster. HTH, Anil Gupta > On Apr 2, 2019, at 4:32 AM, Reid Chan <[email protected]> wrote: > > Hi team, > > I'm trying to transport a phoenix table between two clusters, by copying all > related hbase files on hdfs from cluster A to cluster B. > But after i executed CreateTableStatement in phoenix, phoenix failed to map > those files into table, and `select *` got nothing. > > The questions are, > Is there a proper way or tool to do the table transportation? > If answer is no, can team provide some code pointers if i want to implement > it? > Or reason why is this infeasible? > > FYI, > both hbase version are both 1.x but different in minor version, > phoenix version gap is huge, 4.7.0 and 4.14.1. > > Any suggestions are appreciated! > Thanks > > > -------------------------- > > Best regards, > R.C > >
