geohash

在windows下安装Superset

牧云@^-^@ 提交于 2021-02-12 02:46:46
前言 最近想用一下Superset,这个是一个开源项目,可以直接通过写sql来生成图表,有时候对一些图表需求比较多的时候,可以用的上。 Superset是由Airbnb(知名在线房屋短租公司)开源BI数据分析与可视化平台(曾用名Caravel、Panoramix),该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等,原来是用于支持Druid的可视化分析,后面发展为支持很多种关系数据库及大数据计算框架,如:mysql, oracle, Postgres, Presto, sqlite, Redshift, Impala, SparkSQL, Greenplum, MSSQL. http://superset.apache.org/tutorial.html windows下的安装和配置 superset官网就有安装教程: http://superset.apache.org/installation.html 官网说明对Windows系统当前没有官方支持,不过实际上是可以安装成功的, 如果是windows下的安装的话,要用 Python 安装。 我的环境是: windows 7 64 位 以下是一些前置准备: 安装 Python 我安装的是 Python 3.6 版本。建议版本高一点,Python

【redis】三种特殊数据类型

大城市里の小女人 提交于 2021-01-06 08:17:52
三种特殊数据类型 geospatial 地理位置 geoadd 添加经纬度 geopos 获取经纬度 geodist 给定位置之间的距离 georadius、georadiusbymember 半径 geohash hyperloglog pfadd pfcount 统计基数数量 pfmerge 合并多个hyperloglog bitmap setbit getbit bitcount 统计 geospatial 地理位置 底层是zset实现的, 可以用zset的命令操作 geoadd 添加经纬度 GEOADD key longitude latitude member [longitude latitude member ...] geoadd 用于存储指定的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中。 两极无法直接添加,一般会下载城市数据,直接通过java程序一次导入 127.0.0.1:6379 > geoadd china:city 16.40 39.90 beijing ( integer ) 1 127.0.0.1:6379 > geoadd china:city 121.47 31.23 shanghai ( integer ) 1 127.0.0.1:6379 > geoadd

Redis6.2发布 地理位置功能增强了什么?

随声附和 提交于 2020-12-22 07:38:47
原文地址: https://developer.aliyun.com/article/780257 Redis社区最近刚刚发布 Redis6.2 RC1 版本,在本次发布中,阿里云Tair团队(阿里云云内存数据库产研团队,负责云上Redis社区版和Redis企业版Tair)为社区贡献了大量高质量代码与功能,其中关于地理位置查询能力的提升上,阿里云贡献了GEOSEARCH和GEOSEARCHSTORE两个重要而强大的API。本文通过分析这两个全新的API,对Redis在地理位置型应用进行深入剖析,并延伸介绍了阿里云Tair在地理位置上的更多强大功能与应用场景。 1. Redis 6.2 GEOSEARCH命令详解 Redis自3.2版本,增加了地理位置的相关API: • GEOADD 将给定的空间元素(纬度、经度、名字)添加到指定的键里面。 • GEOPOS 从键里面返回所有给定位置元素的位置(经度和纬度)。 • GEODIST 返回两个给定位置之间的距离。 • GEORADIUS 以给定的经纬度为中心, 返回与中心的距离不超过给定最大距离的所有位置元素。 • GEORADIUSBYMEMBER 跟GEORADIUS类似,指定GEO集合中某个成员为中心。 • GEOHASH 返回一个或多个位置元素的 Geohash 表示。 然而随着互联网生活的本地化进程加快,诸如同城购

妈妈再也不用担心我不会Redis了!

痴心易碎 提交于 2020-12-04 11:29:19
前言: Redis 是如今互联网技术架构中,使用最广泛的缓存。支持 复杂的数据结构 ,支持 持久化 ,支持 主从集群 ,支持 高可用 ,支持 较大的value存储 ... 同时, Redis 也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一。特别是那些优秀的、竞争激烈的大型互联网公司(比如 Twitter、新浪微博、阿里云、腾讯云、淘宝、知乎等),通常要求面试者不仅仅掌握 Redis 基础使用,更要求深层理解 Redis 内部实现的细节原理。毫不夸张地说,能把 Redis 的知识点全部吃透,你的半只脚就已经踏进心仪大公司的技术研发部。 然而,绝大部分开发者只会拿 Redis 做数据缓存,使用最简单的 get/set 方法,除此之外几乎一片茫然,对 Redis 内部实现的细节原理知之甚少。例如: 有同学知道 Redis 的 分布式锁 ,但完全不清楚其内部实现机制 有同学知道 Redis 是 单线程结构 ,但完全不理解 Redis 缘何单线程还可以支持高并发 有同学知道 Redis 支持 主从 ,但完全不晓得内部的实现机制 于是,一位有着十年经验的互联网分布式高并发技术老兵,梳理自己多年 Redis 实践经验,写了这本书,以帮助更多工程师更快,更深入的了解 Redis 。 作者在掌阅维护着上千个 Redis 实例的集群,他在 Redis 持久化,缓存,消息队列 的各类实战经验

一口气说出 4种 LBS “附近的人” 实现方式

天大地大妈咪最大 提交于 2020-11-25 14:38:09
本文收录在 GitHub 地址 https://github.com/chengxy-nds/Springboot-Notebook 引言 昨天一位公众号粉丝和我讨论了一道面试题,个人觉得比较有意义,这里整理了一下分享给大家,愿小伙伴们面试路上少踩坑。面试题目比较简单:“让你实现一个附近的人功能,你有什么方案?”,这道题其实主要还是考察大家对于技术的广度,本文介绍几种方案,给大家一点思路,避免在面试过程中语塞而影响面试结果,如有不严谨之处,还望亲人们温柔指正! “附近的人” 功能生活中是比较常用的,像外卖app附近的餐厅,共享单车app里附近的车辆。既然常用面试被问的概率就很大,所以下边依次来分析基于 mysql数据库 、 Redis 、 MongoDB 实现的 “附近的人” 功能。 科普 :世界上标识一个位置,通用的做法就使用经、纬度。经度的范围在 (-180, 180],纬度的范围 在(-90, 90],纬度正负以赤道为界,北正南负,经度正负以本初子午线 (英国格林尼治天文台) 为界,东正西负。比如:望京摩托罗拉大厦的经、纬度(116.49141,40.01229)全是正数,就是因为我国位于东北半球。 一、“附近的人”原理 “附近的人” 也就是常说的 LBS (Location Based Services,基于位置服务),它围绕用户当前地理位置数据而展开的服务

项目

痞子三分冷 提交于 2020-10-07 07:54:36
数仓项目 我们的数仓项目从数据来源来说分为两类,用户行为日志(web端,微信小程序,APP,前端页面埋点)和业务数据库,从技术架构上说,分为ods,dwd,dws,ads层. (1) ODS层是一个数据采集汇聚层,操作的是最原始的数据,主要的任务是:用flume采集第三方日志,和用sqoop进行业务数据库的抽取,要与原始的数据保持一致,采集过来的数据以json格式存储,一般存储的周期为三个月. (2) DWD层是一个明细层,对ods层的原始数据进行预处理,做ETL处理后的扁平化明细数据,主要的工作是对数据进行清洗过滤: 去除json数据体中的废弃字段(前端开发人员在埋点设计方案变更后遗留的无用字段)2. 过滤掉json格式不正确的脏数据3. 过滤掉日志中account及deviceid全为空的记录(如果是wx日志,过滤account+openid)4. 过滤掉日志中缺少关键字段(properties(事件属性)/eventid(事件id)/sessionid(会话id)的记录!5. 过滤掉日志中不符合时间段的记录(由于app上报日志可能的延迟,有数据延迟到达)6. 对于web端日志,过滤爬虫请求数据(通过useragent(浏览器标识)标识来分析)7. session分割,如果两个时间之间的间隔距离大于30分钟,就切割成两个会话.8. json数据扁平化

授人以鱼不如授人以渔!阿里面试官整理的Redis原理实践小册

白昼怎懂夜的黑 提交于 2020-10-02 06:17:22
还原一个真实的面试场景 在面试后端工程师Redis技能的时候,面试官通常问的第一个问题就是“Redis能用来做什么?”,第一个回答往往都会是「缓存」。缓存确实是Redis 使用最多的领域,它相比Memcache而言更加易于理解、使用和控制。 可是如果再进一步问“还有呢?”,大多数同学就会开始皱眉头,只有一小部分人会回答「分布式锁」。如果你就分布式锁再深入问下去,他们基本就会开始摇头:我们项目里面Redis的锁方法都是别人(应该是架构师)封装好的,拿过来直接使用,内部细节没有去了解过,也没有必要了解。 对类似的场景,我深有体会。因为关于Redis 的面试题,之前准备了很多,但是真正能用上的却很少。当面试的同学频繁地回复「不知道、没用过」的时候,再继续深入追问已经毫无意义,这时候就需要切换话题了。偶尔遇上几个能持续很多回合的同学,他们总能使人眼前一亮。如果再拓展一下周边知识点,就会发现这些人往往也会有所涉猎,这时我在心中已经暗暗地对这位同学伸出了大拇指。 其实很多业务场景,如果仅仅是会使用某项技术、框架,那是再简单不过了。但随着业务发展,系统的用户量、并发量涨上来之后,现有系统的问题就会层出不穷地暴露出来。如果不能深入地了解系统、技术和框架背后的深层原理,很多问题根本无法理解到本质,更谈不上解决,临时抱佛脚也于事无补。 所谓「授人以鱼不如授人以渔」

上手Redis系列(六):超全Geospatial特殊类型详解(地理位置)

廉价感情. 提交于 2020-10-01 23:51:57
学习Redis五种类型之一的Zset之前,我还是觉得我务必跟你说一声,也是在我文章之中说的很多的一句话,我想也会适用于学习Redis,那就是在接触文章里的Reids命令时,不用试图去记这些命令 ,用到时去看API帮助文档即可;会用了或者实践过了再去了解也不会迟 。 上手Redis系列 上手Redis必知必会:最基础知识点和最基本常用操作 上手Redis系列(一):超全String字符串类型详解 上手Redis系列(二):超全List列表类型详解(代码图文示例) 上手Redis系列(三):超全集合Set类型详解(代码图文示例) 上手Redis系列(四):超全哈希Hash类型详解(代码图文示例) 上手Redis系列(五):超全有序集合Zset类型详解 在Redis中会发现一个有趣的 套路 规律,就是每种类型的命令会由类型的首字母开头。就像看下面的Geospatial,如果你耐心看下面的命令会发现都会以 的 Geo 开头。 1.geospatial详解与用途 geospatial自Redis3.2.0版本可以使用。 geospatial 地理位置,具体用途在我们生活中随处可见,例如:地图导航,附近的人,共享单车距离等等。 2.geospatial的命令 有6个命令 GEOADD GEODIST GEOHASH GEOPOS GEORADIUS GEORADIUSBYMEMBER 3

[由零开始]Redis数据类型与底层数据结构

旧街凉风 提交于 2020-09-24 11:31:12
数据类型与底层数据结构 1.数据类型 Redis是一个Key-Value的存储系统,使用ANSI C语言编写。 key的类型是字符串。 常用的:string字符串类型、list列表类型、set集合类型、sortedset(zset)有序集合类型、hash类 型。 不常见的:bitmap位图类型、geo地理位置类型。 Redis5.0新增一种:stream类型 注意:Redis中命令是忽略大小写,(set SET),key是不忽略大小写的 (NAME name) 2. Redis数据类型分析 2.1 Redis的Key的设计 用:分割 把表名转换为key前缀, 比如: user: 第二段放置主键值 第三段放置列名 比如:用户表user, 转换为redis的key-value存储 userid username password email 1 zhangf 111111 zhangf@163.com username 的 key: user:9:username {userid:9,username:zhangf} email的key user:9:email 2.2 String字符串类型 String能表达3种值的类型:字符串、整数、浮点数 2.2 .1 常见操作命令: 命令名称 命令描述 set set key value 赋值 get get key 取值 getset

Spring Boot 2 实战:利用Redis的Geo功能实现查找附近的位置

我与影子孤独终老i 提交于 2020-08-17 08:56:34
1. 前言 老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点。明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了。赶紧去查相关的技术选型。经过一番折腾,终于在晚上十点完成了这个需求。现在把大致实现的思路总结一下。 2. MySQL 不合适 遇到需求,首先要想到现有的东西能不能满足,成本如何。 MySQL 是我首先能够想到的,毕竟大部分数据要持久化到 MySQL 。但是使用 MySQL 需要自行计算 Geohash 。需要使用大量数学几何计算,并且需要学习地理相关知识,门槛较高,短时间内不可能完成需求,而且长期来看这也不是 MySQL 擅长的领域,所以没有考虑它。 Geohash 参考 https://www.cnblogs.com/LBSer/p/3310455.html 2. Redis 中的GEO Redis 是我们最为熟悉的 K-V 数据库,它常被拿来作为高性能的缓存数据库来使用,大部分项目都会用到它。从 3.2 版本开始它开始提供了 GEO 能力,用来实现诸如附近位置、计算距离等这类依赖于地理位置信息的功能。 GEO 相关的命令如下: Redis命令 描述 GEOHASH 返回一个或多个位置元素的 Geohash 表示 GEOPOS 从key里返回所有给定位置元素的位置(经度和纬度) GEODIST 返回两个给定位置之间的距离 GEORADIUS