zoukankan      html  css  js  c++  java
  • cube.js driver 开发一些说明

    以前有写过关于driver 开发的说明,实际上官方对于driver开发还是很不明确的,因为我们进行driver开发
    包含了driver 以及query,cube.js 提供了BaseDriver 以及BaseQuery,一般我们开发就是基于这两个类进行
    扩展,同时还有一个关于filter 的类(BaseFilter)进行一些过滤查询的处理

    BaseDriver 说明

    扩展BaseDriver可以提供不通数据库的访问处理,不如连接同时也包含了information_schmea 的处理,需要实现query
    testConnection,同时也推荐实现release方法

    • infromation 扩展
      很多时候因为数据库的原因对于schema 信息的支持不一样我们可以基于informationSchemaQuery() 方法扩展
    • 数据类型处理
      很多时候数据类型也需要进行调整,fromGenericType() 方法是一个比较方便的
      一般会使用一个json 对象配置
     
    const MySqlToGenericType = {
      mediumtext: 'text',
      longtext: 'text',
      mediumint: 'int',
      smallint: 'int',
      bigint: 'int',
    };
    • 数据预聚合处理
      此次可以定义自己的规则,包含了loadPreAggregationIntoTable以及downloadQueryResults&&downloadTable
      都是比较方便的方法,同时也提供了索引的处理可以加速处理
    • 只读Driver
      包含了一个readOnly 方法,可以方便的控制数据源的读写情况(方便加速以及缓存处理)

    BaseQuery 说明

    扩展BaseQuery可以实现强大的sql生成处理,同时也是cube.js 比较核心的一个功能,日常开发中主要是关于时间的处理

    说明

    关于大数据driver 都是比较值得学习参考的代码,我们可以方便的学习关于driver以及query 的开发,hive

    说明

    cube.js 关于sql 的处理部分还是比较多的,同时也是比较方便的,强大的同时我们需要扩展的话也需要花更多的时间
    后续如果有时间会详细介绍下关于cube.js 的设计

    参考资料

    https://cube.dev/docs/
    https://github.com/cube-js/cube.js/blob/master/CONTRIBUTING.md

  • 相关阅读:
    超文本传输协议 HTTP/1.0 Hyptertext Transfer Protocol
    VB.NET中使用代表对方法异步调用
    蚂蚁解道德经(1)[转载]
    vb.net 类的属性的设置和获取问题
    VB.net入门(6):类~构造函数,事件
    什么是Ajax技术
    千里之外
    一个asp.net2005的页面文件调用CSS样式的BUG
    一个.net发送HTTP数据实体的类
    利用ASP发送和接收XML数据的处理方法
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/14640602.html
Copyright © 2011-2022 走看看