时间戳

sql按任意时间段分组统计

与世无争的帅哥 提交于 2020-02-28 19:35:03
任意时间序列数据都可以按时间分组。 timestamp 为时间戳。 按每五分钟统计日志的数目 select floor(cast(logs.timestamp as int) / 60 / 5) as dt, count(logs.id) from ( select logs.id, logs.timestamp from public.logs as logs order by logs.id asc limit 10) as logs group by floor(cast(logs.timestamp as int) / 60 / 5); 来源: oschina 链接: https://my.oschina.net/whutzl/blog/3178366

HBase底层原理

十年热恋 提交于 2020-02-28 18:46:28
HBase底层原理 1、系统架构 Client 1 包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息。 Zookeeper 1 保证任何时候,集群中只有一个master 2 存贮所有Region的寻址入口 3 实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master 4 存储Hbase的schema,包括有哪些table,每个table有哪些column family Master职责 1 为Region server分配region 2 负责region server的负载均衡 3 发现失效的region server并重新分配其上的region 4 HDFS上的垃圾文件回收 5 处理schema更新请求 Region Server职责 1 Region server维护Master分配给它的region,处理对这些region的IO请求 2 Region server负责切分在运行过程中变得过大的region 2、表数据结构 Row Key 与nosql数据库们一样,row key是用来检索记录的主键。访问hbase table中的行,只有三种方式: 1 通过单个row key访问 2 通过row key的range 3 全表扫描 Row key行键 (Row

servlet解析演进(5)-添加日志

僤鯓⒐⒋嵵緔 提交于 2020-02-28 18:12:02
每一个servlet容器都需要去定位问题,那日志肯定是必不可少的。我们平时启动系统的时候发现日志一直在打印一些信息,信息或是来自容器系统中,或是来自我们的应用系统。下面介绍简单的文件日志系统搭建。 日志文件搭建主要包含以下几个部分: 1、日志文件搭建 2、将日志文件配置到容器中。 3、连接器获得容器的logger实例写信息 4、HttpProcessor通过连接器获得容器的logger实例写信息 1、日志文件搭建: 日志文件的接口关系如图: public interface Logger { /** * 详细的日志等级信息常亮 */ public static final int FATAL = Integer.MIN_VALUE; public static final int ERROR = 1; public static final int WARNING = 2; public static final int INFORMATION = 3; public static final int DEBUG = 4; //获取容器 public Container getContainer(); //设置容器 public void setContainer(Container container); //获得关于日志实现和对应版本号的详细信息 public String

formatTime() 时间戳,返回数据是计算距离现在的时间

别说谁变了你拦得住时间么 提交于 2020-02-28 14:36:47
1 const formatTime=function(tiem) {//时间转换 2 const timestamp = Date.now(); 3 return function (tiem) { 4 const diff = timestamp - tiem * 1000; 5 if (diff < 60 * 1000) { 6 return '刚刚'; 7 } else if (diff < 60 * 60 * 1000) { 8 return Math.floor(diff / (60 * 1000)) + '分钟前'; 9 } else if (diff < 24 * 60 * 60 * 1000) { 10 return Math.floor(diff / (60 * 60 * 1000)) + '小时前'; 11 } else { 12 const createTime = new Date(tiem * 1000); 13 const Day = createTime.getDate(); 14 const Month = createTime.getMonth() + 1; 15 const Hour = createTime.getHours(); 16 const Minute = createTime.getMinutes(); 17 function

第十节:进一步扩展两种安全校验方式

依然范特西╮ 提交于 2020-02-28 13:55:38
一. 简介 简介: 上一节中,主要介绍了JWT校验,它是无状态的,是基于Token校验的一种升级,它适用的范围很广泛,APP、JS前端、后台等等客户端调用服务器端的校验。本节补充几种后台接口的校验方式,它主要适用于后台代码的调用,不适合JS、APP等客户端直接调用。   PS:在一些对接一些银行接口或者一些支付接口,通常会提到这么几个名词:   (1). 根据参数名正序排序、根据参数名的ASCII码排序。   (2). appKey和appSecret,通常appKey是要当做参数进行传递,appSecret用于Sign值的计算(通常拼接后用MD5加密),有的让你 MD5(拼接参数),然后再和appSecret拼接一块,有的直接吧appSecret和其它参数按照一定规则直接拼接,最后进行MD5加密。 1. 根据参数名正序排序 eg:参数名分别为appKey、abp、userName、userPwd,排序先根据首字母排序,首字母相同,看第二个字母,依次类推,所以排序的结果为:abp、appkey、userName、userPwd,我们最终想拼接的字符串的形式为:【abp=hh&appkey=hh&userName=hh&userPwd=hh】 代码分享: 借助orderBy和Select可以实现正序排序,然后利用Join方法进行拼接 1 [HttpGet] 2 public

SQL Server类型与C#类型对应关系

我的未来我决定 提交于 2020-02-27 21:41:44
SQL Server 2000 C# CodeSmith 数据类型 取值范围 数据类型 取值范围 空值代替值 数据类型 bigint -2^63 (-9,223,372,036,854,775,807) 至 2^63-1 (9,223,372,036,854,775,807) Int64 -9,223,372,036,854,775,808;即十六进制的 0x8000000000000000至9,223,372,036,854,775,807;即十六进制的 0x7FFFFFFFFFFFFFFF Int64.MinValue Int64 binary 固定长度的 n 个字节二进制数据。 N 必须从 1 到 8,000。存储空间大小为 n +4 字节。 Byte[] null Binary bit True,False enum 0,1,-1(使用一个枚举变量来代替) public enum bitNull { False, True, Null = -1 }; -1 Boolean char 长度为 n 个字节的固定长度且非 Unicode 的字符数据。 n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。 string null AnsiStringFixedLength datetime 存储从 1753 年 1 月 1 日至 9999 年 12 月 31

前端数组列表时间戳转换格式方法

*爱你&永不变心* 提交于 2020-02-27 14:22:57
刚开始数据列表 格式化时间 formatDateTime: function (timeStamp) { var date = new Date(); date.setTime(timeStamp); var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? ('0' + m) : m; var d = date.getDate(); d = d < 10 ? ('0' + d) : d; var h = date.getHours(); h = h < 10 ? ('0' + h) : h; var minute = date.getMinutes(); var second = date.getSeconds(); minute = minute < 10 ? ('0' + minute) : minute; second = second < 10 ? ('0' + second) : second; return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second; }, 数组时间格式转换 let that = this; let data = res.data.dataResult; data.map((item,

PHP Date() 函数

自闭症网瘾萝莉.ら 提交于 2020-02-27 09:23:24
PHP date() 函数用于对日期或时间进行格式化。 PHP Date() 函数把时间戳格式化为更易读的日期和时间。 语法 date(format,timestamp) 参数 描述 format 必需。规定时间戳的格式。 timestamp 可选。规定时间戳。默认是当前时间和日期。 注释: 时间戳是一种字符序列,它表示具体事件发生的日期和事件。 下面列出了一些常用于日期的字符: d - 表示月里的某天(01-31) m - 表示月(01-12) Y - 表示年(四位数) 1 - 表示周里的某天 其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。 下面的例子用三种不同方法格式今天的日期: <?php echo "今天是 " . date("Y/m/d") . "<br>"; echo "今天是 " . date("Y.m.d") . "<br>"; echo "今天是 " . date("Y-m-d") . "<br>"; echo "今天是 " . date("l"); ?> 获得简单的时间 下面是常用于时间的字符: h - 带有首位零的 12 小时小时格式 i - 带有首位零的分钟 s - 带有首位零的秒(00 -59) a - 小写的午前和午后(am 或 pm) <?php $d = data( Y-m-d H:i:s,time() ); ?>

适合学习的QT开源项目-SerialTool

会有一股神秘感。 提交于 2020-02-27 05:57:12
https://github.com/Skiars/SerialTool A cross platform Serial-Port/TCP/UDP debugging tool. SerialTool是一个跨平台的串口/网络调试工具。此工具支持串口调试助手、终端、波形显示和文件传输等功能。该工具的源代码使用GPL许可证发布。 SerialTool支持基础的文本传输。文本传输界面支持16进制与ASCII格式的收发。您可以自定义文本传输使用的字符编码,目前SerialTool支持ASCII、GB-2312、GB-18030、UTF-8、UTF-16BE、UTF-16LE共6总字符编码。此外还支持多种代码高亮模式,这对文本通信协议(例如使用JSON通信)的操作有较大帮助。 SerialTool的波形显示模块使用简单的协议进行数据传输,我们已经为用户封装好了平台无关的 C语言协议库 ,具体的协议说明请参考 串口示波器协议说明 。用户可以将采集的波形保存为文本文件,然后使用Matlab等工具进行数据分析(您需要自己编写程序,SerialTool的波形存档为csv格式)。当然,您也可以使用SerialTool载入波形文件。 如果您支持本软件,欢迎贡献源代码或者向作者提出建议。 使用Qt开发,跨平台。目前支持Windows和Linux 中文接收显示不乱码 国际化支持 换肤

谷歌验证 (Google Authenticator) 的实现原理是什么?

风流意气都作罢 提交于 2020-02-26 12:51:15
著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:徐小花 链接:http://www.zhihu.com/question/20462696/answer/18731073 来源:知乎 开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。 实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。 目前客户端有: android版: Google 身份验证器 iOS版: https:// itunes.apple.com/cn/app /google-authenticator/id388497605 https://github.com/google/google-authenticator-android 实现原理: 一、用户需要开启Google Authenticator服务时, 1.服务器随机生成一个类似于『DPI45HKISEXU6HG7』的密钥,并且把这个密钥保存在数据库中。 2.在页面上显示一个二维码,内容是一个URI地址(otpauth://totp/账号?secret=密钥),如『otpauth://totp/kisexu@gmail.com?secret