尽管cube.js 包含了一个doc 站点,但是资料不是很全,同时如果查看了cube github 代码中的一些demo的话,发现还是很不错的 但是一些实践没有在文档展现出来,还好我们可以从cube 的产品网站找点有意义的东西 参考网站 https://statsbot.co/docs 比如一些好的实践 动态union table 的 https://statsbot.co/docs/dynamically-union-tables 如何处理子查询的 https://statsbot.co/do…
在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学习原理. 本篇主要参考了AlphaGo Zero的论文, AlphaGo Zero综述和AlphaGo Zero Cheat Sheet. 1. AlphaGo Zero模型基础 AlphaGo Zero不需要学习人类的棋谱,通过自我对弈完成棋力提高.主要使用了两个模型,第一个就是我们上一节介绍MC…
介绍python的几个內建模块,原文链接 1 python的时间模块datetime 取现在时间 from datetime import datetime now = datetime.now() print(now) print(type(now)) 将指定日期转化为时间戳 from datetime import datetime dt = datetime(2017,12,13,13,7) # 把datetime转换为timestamp print( dt.timestamp() ) 将…
cube.js 官方为我们也提供了backeng 部署的模型,为了测试方便以下是一个使用docker-compose 运行的demo 项目是一个集成gitbase 的demo,实际可以按照自己的项目修改,同时集成了redis cache,gitbase-web 环境准备 项目结构 ├── README.md ├── cube │ ├── Dockerfile │ ├── index.js │ ├── package.json │ └── schema │ ├── Blobs.js │ ├── C…
我们可以使用cube的pre-aggregation 加速数据的查询,以下为一张来自官方的pre-aggregation 架构 参考架构图 pre-aggregation schema preAggregations: { amountByCreated: { type: `rollup`, measureReferences: [amount], timeDimensionReference: createdAt, granularity: `month` } } 参考资料 https://c…
cube.js 从设计上就进行了系统上的分层,backend,frontend,backend 是cube.js 的核心 对于cube.js backend 的部署官方也提供了好多中方法 部署模型 serverless 目前主要是aws的应用场景 heroku 基于heroku 提供的pg 以及应用部署能力 docker 部署,单机.同时基于环境变量的配置 docker-compose 全家桶的方式,集成pg.redis,以及nodejs 运行时环境 kubernetes 的集成,实际上这个就很…
cube.js 对于mongodb 的连接是通过mongodb bi connector(mysql 协议)处理的,以下为简单的试用 安装mongo bi connector 这个玩意用docker 跑起来有点烦,直接试用本地运行,后期制作一个docker 镜像 下载地址 参考地址 https://www.mongodb.com/download-center/bi-connector/releases 简单配置 默认安装包已经内置了一个配置文件,我们只需要简单修改下就可以使用了,注意schem…
这个是一个简单的demo,使用gitbase+cube 分析git 仓库代码 需求 我们平时使用的gitlab,或者gogs 等git 仓库管理工具,有自己的管理强项,但是对于分析上可能就不是那么强大了 这个就需要我们进行git 代码文件级别的分析了,可选的工具很多gitstats 就是一个不错的选择,但是大部分是基于 单仓库管理的,gitbase 则不同,给予我们提供了大批量的分析能力 环境准备 gitbase 安装 参考官方文档,直接二进制文件就可以了 cube.js 这个我们可以通过全局安…
  cube.js 对于measure以及dimension 提供了丰富的数据类型,基本满足我们常见应用的开发,同时对于不同类型也提供了 格式化的操作 measure类型 number 格式 purchasesRatio: { sql: `${purchases} / ${count} * 100.0`, type: `number`, format: `percent` } count 格式 numerOfUsers: { type: `count`, // optional drillMem…
  cube.js 也支持join, 参考格式 joins: { TargetCubeName: { relationship: `belongsTo` || `hasMany` || `hasOne`, sql: `SQL ON clause` } } 一个简单demo cube("Authors", { joins: { Books: { relationship: `hasMany`, sql: `${Authors}.id = ${Books}.author_id` } } }…
  cube 是cube.js data schema 的核心,里面定义了生成sql 的说明 一个比较全的schema 例子 cube(`Users`, { sql: `select * from users`, joins: { Organizations: { relationship: `belongsTo`, sql: `${Users}.organization_id = ${Organizations}.id` } }, measures: { count: { type: `cou…
cube.js的 data schema 类似graphql 的type 定义,但是cube.js 的data schema 更偏向于dsl, 其中抽象了进行数据分析应用开发中的东西,自己提炼了measures , dimensions,cube 说明 cube 这个是用来进行实体,或者说是数据库表管理的 measures 说简单点就是聚合类的操作,但是这个是由cube.js 自动帮我们生成代码的,我们只需要定义 dimensions 实际上就是我们关注的详细数据列信息(一般体现为数据库表的定义…
cube.js 是目前看到从设计以及理念上很不错的数据分析事件,graphql2chartjs 是hasura graphql-engine 团队开发 的一个类库基于graphql,以下做一些比较 cube.js 组件更丰富(backend,frontend),graphql2chartjs 就是一个类库,只是封装了一些图标的处理 cube.js 支持的数据库比较多,graphql2chartjs 只是pg(当然和hasura 的graphql-engine有关系) 都是支持实时数据展示的,但是…
cube.js 是一个很不错的模块化分析框架,基于schema生成sql 同时内置可代码生成,可以快速的搞定 web 分析应用的开发 安装cli 工具 npm install -g cubejs-cli 创建简单应用 使用cli cubejs create pg-demo -d postgres 准备pg 数据库 使用docker-compose version: "3" services: postgres: image: postgres:9.6.11 ports: - "…
cube.js 是一款很不错的模块化web 应用分析框架.cube.js 的设计主要是面向serverless 服务, 但是同时也支持所有rdbms, cube.js不是一个单体应用,包含了以下部分: backend cube.js scheme 类似ORM ,方便数据模型的分析 cube.js query Orchestration 以及cache 优化查询的执行 cube.js api gateway 提供长轮询的api ,方便分析 frontend javascrript clinet 提…
有一段时间没有关注cube.js 了,刚好晚上收到一封来自官方的更新介绍,这里简单说明下 更多的数据驱动支持 bigquey, clickhouse snowflake,presto (很棒),hive,oracle 支持的完整列表在docs 开发这的playground 有了很多的提升,可以查看查询的json 数据了 基于数据库以及schema 级别的多租户方式支持,我们可以连接多个数据库了 rollups 有了很大的提升,可以在外部数据库创建了, 动态schema 生成更加灵活了 同时官方发…
今天有写过一个简单的cube.js 集成cratedb 的说明,主要是在driver 上的兼容问题,处理方法是删除不兼容的代码 实际上我们也可以通过类似linux c 开发中的patch 方式解决,简化手工干预 生成patch 文件 安装npm 依赖   yarn 生成patch 重命名原有的文件(进入npm 包目录) cp PostgresDriver.js PostgresDriver-origin.js 修改PostgresDriver.js ,删除不兼容的部分: 生成patch diff…
cratedb 提供了pg协议的兼容,我们可以直接使用pg client 连接,但是也不是完整实现pg 协议的 以下是 cube.js 集成cratedb 的一些尝试 环境准备 docker-compose 文件 主要是数据库环境的   version: "3" services: db: image: crate ports: - "5432:5432" - "4200:4200" cube.js pg 项目创建 cubejs create -…
目前对于edgedb 主要还是来自官方的python驱动,目前js 版本的已经快发布了,代码在github 可以看到了 同时官方文档也提供了一个关于edgedb 内部的协议说明,结合js 驱动以及文档我们可以方便学习 内部协议参考资料 https://edgedb.com/docs/internals/protocol/overview 参考资料 https://github.com/edgedb/edgedb-js        …
cube.js 进行数据分析,需要我们编写schema 文件,但是因为gitbase 的原因没发进行自动生成,而且还有些问题 所以做了一些简单的修改 注意直接使用cube-cli 0.9.0 可以自动帮助我们生成大部分schema 还是很方便的 参考项目 https://github.com/rongfengliang/gitbase-cube.js-schema 几个问题 primary key 问题 默认gitbase 生成的table 没有包含主键,处理方法就是自己添加,目前可以使用仓库i…
cube.js 是一个和不错的数据分析框架,最近又有了一些新的功能支持,以下是一些简单的 总结 基于web socket 的预览支持 react hooks api 支持 支持基于reecharts 图表类型的api开发 cube.js server 支持https External pre-aggregations 支持 originalSql 的预聚合处理 对于mysql 以及postgres External pre-aggregations 的性能 提升 cube.js 模版支持 ,很方…
cube.js 对于presto 的支持是通过presto-client 刚好简单修改了一个可以支持presto-gateway 连接的 以下是一个简单的集成,以及关于集成中原有的一些修改 环境准备 docker-compose 文件 version: "3" services: proxy: image: dalongrong/presto-gateway:1.6.1 ports: - "8888:8888" - "8082:8082" - &…
cube.js 新的版本添加了更多的数据库的支持,但是目前cubejs-cli 以及官方文档问题还挺多,使用不清晰,文档有明显的错误 以下演示presto 数据库的使用 环境准备 安装新版本的cubejs-cli   npm install -g cubejs-cli 初始化一个项目 此处有问题,当前cli 还不支持dbtype 为presto 的格式,解决方法,使用可以生成的dbtype,然后修改配置 初始化项目 cubejs create -d postgres mypresto 修改配置…
转自:https://cube.dev/blog/high-performance-data-analytics-with-cubejs-pre-aggregations/ 可以了解 Pre-Aggregations的处理流程 This is an advanced tutorial. If you are just getting started with Cube.js, I recommend checking this tutorial first and then coming bac…
之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了.再到后来是因为Settings-Sync插件二次开发,我需要用node.js造一个mock server,而当时在开源项目上找到一个模拟github rest api的node.js服务端程序,然后我就在此基础上开发.从工作中学习有应用场景有目的性,果然还是学的要快很多. 今天之所以要说一说node.js的十大Web框架,主要是觉得以后针对VsCode开发或者是我自己的…
http://www.oschina.net/news/80593/deep-learning-frameworks-a-review-before-finishing-2016 TensorFlow 链接:https://www.tensorflow.org/ 对于那些听说过深度学习但还没有太过专门深入的人来说,TensorFlow 是他们最喜欢的深度学习框架,但在这里我要澄清一些事实. 在 TensorFlow 的官网上,它被定义为「一个用于机器智能的开源软件库」,但我觉得应该这么定义:Te…
原文:二十六个月Android学习工作总结 1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍.     2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该功能的运行过程写出来.      3.要有自己的知识库,可以是一个工具类,把写过的,看过的好的代码放进去,也可以是一个笔记本软件.因为只有放在知识库里的东西,才是你最重要的财富.      4.如果你想做自由职业者,你需要学英语,因为在国外的盈利比国内多很多.如果你想进大公司,好公司,你需要学英语.…
首发:个人博客,更新&纠错&回复 phaser官方示例学习进行中,把官方示例调整为简明的目录结构,学习过程中加了点中文注释,代码在这里. 目前把官方的完整游戏示例看了一大半, breakout是敲砖块,gemmatch是钻石消除,invaders是小蜜蜂,matching是配对,simon是记忆游戏,sliding是拼图,starstruck类似超级马里奥,tanks是坦克游戏. 游戏场面上看,敲砖块.小蜜蜂是竖版,超级马里奥是横版,坦克游戏是俯瞰,钻石.配对.记忆.拼图这四个都是棋盘.…
在强化学习(十七) 基于模型的强化学习与Dyna算法框架中,我们讨论基于模型的强化学习方法的基本思路,以及集合基于模型与不基于模型的强化学习框架Dyna.本文我们讨论另一种非常流行的集合基于模型与不基于模型的强化学习方法:基于模拟的搜索(Simulation Based Search). 本篇主要参考了UCL强化学习课程的第八讲,第九讲部分. 1. 基于模拟的搜索概述 什么是基于模拟的搜索呢?当然主要是两个点:一个是模拟,一个是搜索.模拟我们在上一篇也讨论过,就是基于强化学习模型进行采样,得到样…
在强化学习(十五) A3C中,我们讨论了使用多线程的方法来解决Actor-Critic难收敛的问题,今天我们不使用多线程,而是使用和DDQN类似的方法:即经验回放和双网络的方法来改进Actor-Critic难收敛的问题,这个算法就是是深度确定性策略梯度(Deep Deterministic Policy Gradient,以下简称DDPG). 本篇主要参考了DDPG的论文和ICML 2016的deep RL tutorial. 1. 从随机策略到确定性策略 从DDPG这个名字看,它是由D(Dee…