首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

关于Impala的use_local_tz_for_unix_timestamp_conversions参数探究

使用过Impala的同学都知道,impala默认对于timestamp都是当成UTC来处理的,并不会做任何的时区转换。这也就是说,当你写入一个timestamp的数据时,impala就会把它当成是UTC的时间存起来,而不是本地时间。但是Impala同时又提供了use_local_tz_for_unix_timestamp_conversions和convert_legacy_hive_parquet_utc_timestamps这两个参数来处理timestamp的时区问题。convert_legacy_hive_parquet_utc_timestamps这个参数主要是用来处理hive写parquet文件,impala读取的问题,本文暂不展开,这里主要介绍下use_local_tz_for_unix_timestamp_conversions这个参数的作用。首先,我们来看下官方的解释: The --use_local_tz_for_unix_timestamp_conversions setting affects conversions from TIMESTAMP to BIGINT, or from BIGINT to TIMESTAMP. By default, Impala treats all TIMESTAMP values as UTC, to simplify analysis of time-series data from different geographic regions. When you enable the --use_local_tz_for_unix_timestamp_conversions setting, these operations treat the input values as if they are in the local time zone of the host doing the processing. See Impala Date and Time Functions for the list of functions affected by the --use_local_tz_for_unix_timestamp_conversions setting. 简单来说,就是开启了这个参数之后(默认false,表示关闭),当SQL里面涉及到了timestamp->bigint/bigint->timestamp的转换操作时,impala会把timestamp当成是本地的时间来处理,而不是UTC时间。这个地方听起来似乎很简单,但是实际理解起来的时候非常容易出错,这里笔者将结合自己的实际测试结果来看一下use_local_tz_for_unix_timestamp_conversions这个参数究竟是如何起作用的。

03

数据分析小结:使用流计算 Oceanus(Flink) SQL 作业进行数据类型转换

在这个数据爆炸的时代,企业做数据分析也面临着新的挑战, 如何能够更高效地做数据准备,从而缩短整个数据分析的周期,让数据更有时效性,增加数据的价值,就变得尤为重要。 将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程(即 ETL 过程),则需要开发人员则需要掌握 Spark、Flink 等技能,使用的技术语言则是 Java、Scala 或者 Python,一定程度上增加了数据分析的难度。而 ELT 过程逐渐被开发者和数据分析团队所重视,如果读者已经非常熟悉 SQL,采用 ELT 模式完成数据分析会是一个好的选择,比如说逐渐被数据分析师重视的 DBT 工具,便利用了 SQL 来做数据转换。DBT 会负责将 SQL 命令转化为表或者视图,广受企业欢迎。此外使用 ELT 模式进行开发技术栈也相对简单,可以使数据分析师像软件开发人员那样方便获取到加工后的数据。

03

MySQL数据类型与优化

1、假如只需要存0~255之间的数,无负数,应使用tinyint unsigned(保证最小数据类型) 2、如果长度不可定,如varchar,应该选择一个你认为不会超过范围的最小类型 比如: varchar(20),可以存20个中文、英文、符号,不要无脑使用varchar(150) 3、整形比字符操作代价更低。比如应该使用MySQL内建的类型(date/time/datetime)而不是字符串来存储日期和时间 4、应该使用整形存储IP地址,而不是字符串 5、尽量避免使用NULL,通常情况下最好指定列为NOT NULL,除非真的要存储NULL值 6、DATETIME和TIMESTAMP列都可以存储相同类型的数据:时间和日期,且精确到秒。然而TIMESTAMP只使用DATETIME一半的内存空间,并且会根据时区变化,具有特殊的自动更新能力。另一方面,TIMESTAMP允许的时间范围要小得多,有时候它的特殊能力会变成障碍

01

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券