zoukankan      html  css  js  c++  java
  • HIVE 乱码以及 HUE SQL 语句兼容性的记录(遇到应该会一直更新)

    最近在 HUE 里面查询有中文字段相关的东西被报错警告。。。

    (1366, Incorrect string value: \xE4\xBA\xAC\xE4\xB8\x9C... for column search at row 1)

    通过调整 HUE 使用的某些元数据表的表编码来解决这个问题:

    ALTER TABLE desktop_document2 modify column name varchar(255) CHARACTER SET utf8;
    ALTER TABLE desktop_document2 modify column description longtext CHARACTER SET utf8;
    ALTER TABLE desktop_document2 modify column search longtext CHARACTER SET utf8;
    
    alter table beeswax_queryhistory modify `query` longtext CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL;

    在书写在 MySQL 中能使用的语句的时候还遇到一些无法直接在 hive 或者 presto 中运行的兼容性问题。

    例如:


    presto 可以运行的版本


    -- 三人团奖学金表1 select '200元奖学金' AS "卡券类型", '线上H5' AS "渠道", 9000 AS "总发放数量", count(*) AS "总领取数", count(*)/9000 AS "总领取率", count(*) AS "总有效使用率" from course.user_taste t1 join analytics_db.hd_new_user_info t2 on t1.taste_type=6 and t1.quota=1 and t1.status=1 and t1.user_id = t2.user_id

    hive 可以运行个的版本

    -- 三人团奖学金表1
    select 
        '200元奖学金' AS `卡券类型`,
        '线上H5' AS `渠道`,
        9000 AS `总发放数量`,
        count(*) AS `总领取数`,
        count(*)/9000 AS `总领取率`,
        count(*) AS `总有效使用率`
    from course.user_taste t1
    join 
        analytics_db.hd_new_user_info t2 
    on 
        t1.taste_type=6 
        and t1.quota=1 
        and t1.status=1 
        and t1.user_id = t2.user_id

    MySQL 以上两个版本都可以运行,不得不佩服 MySQL 对 SQL 的语句兼容性和包容性真的非常好。

    为了让 hive 和 presto 兼容得比较好,字符串最好都用 单引号引起来这个都没问题,as xxx 后面 hive 需要使用 ` ` 引起来。而  presto 需要使用双引号引起来。

  • 相关阅读:
    hdu 1028 Ignatius and the Princess III (n的划分)
    CodeForces
    poj 3254 Corn Fields (状压DP入门)
    HYSBZ 1040 骑士 (基环外向树DP)
    PAT 1071 Speech Patterns (25)
    PAT 1077 Kuchiguse (20)
    PAT 1043 Is It a Binary Search Tree (25)
    PAT 1053 Path of Equal Weight (30)
    c++ 常用标准库
    常见数学问题
  • 原文地址:https://www.cnblogs.com/piperck/p/11053200.html
Copyright © 2011-2022 走看看