LeMingFei 2023-03-05 10:43 采纳率: 50%
浏览 63
已结题

phoenix数据从cdh5迁移到cdh6,联合主键映射问题

通过phoenix 创建的hbase表的数据从CDH5迁移到CDH6中,并在CDH6中影射成phoenix表,通过Snapshot方式跨集群迁移数据,在CDH6集群clone_snapshot 恢复数据后,现在碰到了两个问题:

1.phoenix 映射单主键的表,数据查询都正常显示,但是以主键为查询条件不能正常过滤出想要的信息;

2.phoenix映射联合主键的表,联合主键对应的字段不能正常使用

  • 写回答

5条回答 默认 最新

  • 「已注销」 2023-03-05 10:57
    关注

    “Devil组”引证GPT后的撰写:
    1.可能是因为Phoenix和HBase在处理主键时的语义不同所导致的。具体来说,HBase主键是基于字节数组进行比较的,而Phoenix主键则是根据数据类型进行比较的。因此,如果你使用了不同的编码方式,可能会导致主键过滤失败。为了解决这个问题,你可以尝试使用Phoenix提供的TO_BINARY函数将主键转换为字节数组进行比较,例如:

    SELECT * FROM my_table WHERE TO_BINARY(my_pk) = TO_BINARY('my_value');
    
    
    

    2.对于联合主键的问题,你需要确保在Phoenix中正确定义了表的复合主键,例如:

    CREATE TABLE my_table (
      pk1 VARCHAR,
      pk2 VARCHAR,
      ...
      CONSTRAINT my_pk PRIMARY KEY (pk1, pk2)
    );
    
    
    

    然后,在查询时,你需要指定所有的主键列,例如:

    SELECT * FROM my_table WHERE pk1 = 'value1' AND pk2 = 'value2';
    
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月12日
  • 赞助了问题酬金15元 3月5日
  • 创建了问题 3月5日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境