• 模式设计


    按天划分表的模式  一天一张表如果用户登录日志 login_20180101,login_20180102

    在hive中可以使用按天分区,这样查询效率高,而且比按天分表看起来更清新明了

    hive> create table loginfo(userid int,logintime timestamp) partitioned by (dateid int);
    OK
    Time taken: 0.292 seconds

    hive> alter table loginfo add partition(dateid=20180101);
    OK
    Time taken: 0.585 seconds
    hive> alter table loginfo add partition(dateid=20180102);
    OK
    Time taken: 0.464 seconds
    hive> alter table loginfo add partition(dateid=20180103);
    OK
    Time taken: 0.557 seconds

    [root@host ~]# hdfs dfs -ls /user/hive/warehouse/gamedw.db/loginfo
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/root/hadoop/hadoop-2.7.4/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/root/hive/apache-hive-2.1.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    Found 3 items
    drwx-wx-wx   - root supergroup          0 2018-09-18 13:46 /user/hive/warehouse/gamedw.db/loginfo/dateid=20180101
    drwx-wx-wx   - root supergroup          0 2018-09-18 13:46 /user/hive/warehouse/gamedw.db/loginfo/dateid=20180102
    drwx-wx-wx   - root supergroup          0 2018-09-18 13:47 /user/hive/warehouse/gamedw.db/loginfo/dateid=20180103

    hdfs的设计目的是存储数以百万计的大文件而不是数以亿计的小文件,文件太多会超过namenode的处理能力。

    一个理想的分区方案是每个目录下的文件足够大,是文件系统中块的若干倍,而不是产生过多的文件和文件夹。选择合适的分区时间粒度,尽量保证数据随着时间的推移,分区数据量是均匀的,分区足够大,可以优化一般查询的吞吐量。

    还有一种分区策略就是使用两个级别的分区,并使用不同的维度。如按时间+地区,第一级分区按时间,第二级分区按地区划分。这样分区可能会因为不同地区的数据不一样而导致数据分不均,导致处理数据大的地区数据会用时比较久。

    因此要根据实际情况合理的进行分区。

  • 相关阅读:
    系统使用 aspose.cell , 使得ashx第一次访问会变很慢
    aspx页面生成html
    SQL Server 监控 使用sp_trace_create
    IE6 IE7: div中table宽度100%导致的宽度问题
    VSTO Word2003 添加菜单栏, 添加工具栏
    mysql主主同步的配置
    linux永久添加静态路由有两种方法
    centos 7 进入单用户系统并且更改所有系统文件
    rabbitmq-3.7.2编译安装全过程
    linux centos 升级 make 4.2
  • 原文地址:https://www.cnblogs.com/playforever/p/9668480.html
Copyright © 2020-2023  润新知