- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.. .. .. .. doc.. .. PAGE / NUMPAGES doc.. .. .. .. doc.. .. Hive update实现方案 问题 由于hive数仓的特性,不容许数据进行修改,造成hive中的数据更新活着删除很困难的问题,自hive 0.11版本之后,hive也尝试在测试环境允许进行update和delte操作,但这些操作还不成熟,不敢在生产环境放心使用,其中也有一样不足。所以就需要找一种可靠的方案实现hive的数据更新或者删除。 方案 创建数据表 创建两张数据结构一模一样的hive数据表TEST、TEST_TEMP,其中TEST表的存储格式为“ORCFILE”(性能高),TEST_TEMP表的存储格式为“TEXTFILE”(方便数据加载)。 ID NAME AGE 主键 姓名 年龄 create table TEST_TEMP ( id string, name string, age string ) comment 临时表 partitioned by (y string,m string,d string) row format delimited fields terminated by , stored as textfile create table TEST ( id string, name string, age string ) comment 最终表 row format delimited fields terminated by , stored as orcfile 初始化 通过hive数据load的方式先把数据加载到TEST_TEMP表中(此处也可以通过sqoop进行数据抽取,不再详述)。 load data local inpath /home/hadoop/a.txt overwrite into table TEST_TEMP 通过hive insert overwrite的方式把临时表的数据加载到最终表TEST中。 insert into table TEST select id,name,age from TEST_TEMP 日常 通过hive数据load的方式先把数据加载到TEST_TEM表中(此处也可以通过sqoop进行数据抽取,不再详述)。 load data local inpath /home/hadoop/b.txt overwrite into table TEST_TEMP 通过数据比对方式,找出非更新和非增量的数据,人后把这部分数据覆盖到TEST表中,即保证TEST中的数据和TEST_TEMP中的没有重复(前提是表中必须有主键)。 INSERT OVERWRITE TABLE TEST SELECT id,name,age FROM TEST a LEFT JOIN TEST_TEMP b on a.id=b.id WHERE b.id is null; 注:上述语句其实就是not in的逻辑,如果日常数据上包含增、删、改标识,则只需在关联时在TEST_TEMP表上加条件判断即可。 经过第二步的数据比对重复处理之后,则可以直接把TEST_TEMP中的数据追加(append)到TEST表。 insert into table TEST select id,name,age from TEST_TEMP; ****************增、改实现**************** 注:实现比对出增、改标识 SELECT a.id, a.name, a.age,
文档评论(0)