分享

oracle入数据到hbase(编码问题) Kettle

aqi915 发表于 2016-9-7 16:39:51 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 9741
各位大侠好:
       我用kettle把oracle数据入到hbase,数据入入成功,但读出来编码有误,应该怎么读呢?
下面是我的读取方式:

    public static void getResultScann(String tableName) throws IOException {  
        Scan scan = new Scan();  
        ResultScanner rs = null;  
        HTable table = new HTable(conf, Bytes.toBytes(tableName));  
        try {  
            rs = table.getScanner(scan);  
            for (Result r : rs) {  
                for (KeyValue kv : r.list()) {  
                    System.out.println("row:" + Bytes.toString(kv.getRow()));  
                    System.out.println("family:"  
                            + Bytes.toString(kv.getFamily()));  
                    System.out.println("qualifier:"  
                            + Bytes.toString(kv.getQualifier()));  
                    System.out  
                            .println("value:" + Bytes.toString(kv.getValue()));  
                    System.out.println("timestamp:" + kv.getTimestamp());  
                    System.out  
                            .println("-------------------------------------------");  
                }  
            }  
        } finally {  
            rs.close();  
        }  
    }  

在此非常感谢呀!

已有(4)人评论

跳转到指定楼层
aqi915 发表于 2016-9-7 16:41:08
还有,知道kettle如何用脚本么
回复

使用道具 举报

nextuser 发表于 2016-9-7 17:24:19
aqi915 发表于 2016-9-7 16:41
还有,知道kettle如何用脚本么

楼主可以看下oracle的数据是什么编码
然后修改下hbase的编码

这个应该在导数据的时候,就应该注意下。后面再修改的话可能会麻烦些。

另外一种办法:
可以尝试在读取中修改数据编码为oracle编码

回复

使用道具 举报

arsenduan 发表于 2016-9-7 17:55:14
比如gbk
String newStr=new String( kv.getTimestamp(),"gbk");//这里写转换后的编码方式
回复

使用道具 举报

aqi915 发表于 2016-9-8 11:25:24
arsenduan 发表于 2016-9-7 17:55
比如gbk
String newStr=new String( kv.getTimestamp(),"gbk");//这里写转换后的编码方式

好像和编码没关系还是转的不对,我用kettle入数据到hbase 选的数据类型Integer直接入到hbase了,用的是utf-8的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条