cratedb/yii

crateDB,PDO, Yii Connection


Keywords
pdo, Connection, yii2, crateDB
License
BSD-3-Clause

Documentation

Yii crate(elastic)db Connection class

#####描述: 提供crateDB的一个Connection类

creteDB,elastic 的SQL版本,参见https://crate.io/.

crateDB PDO 来自https://github.com/crate/crate-pdo, downgrade it for adapting to php 5.5.

#####配置: 1 common/config/bootstrap.php 或者 common/config/bootstrap-local.php 中添加:

    require_once (dirname(__DIR__) . '/cratedb/yii/autoload.php');

or composer require cratedb/yii

2 common/config/main-local.php 增加crateDB如:

    ...
    'cratedb' => [
                'class' => 'Crate\yii\CrateConnection',
                'dsn' => 'crate:localhost:4201/b2b',
                'charset' => 'utf8',
            ],
    ...

#####示例:

    ...

    $sql = "SELECT sum(goods_amount) as goods_amounts ,date_format('%Y%m%d',max(a.created)) as last_created,b.sales_staff_id  FROM bd_order a inner
     join md_member b on a.member_id=b.member_id group by b.sales_staff_id order by goods_amounts desc LIMIT 1000";
    $result = \Yii::$app->get('cratedb')->query($sql);
    foreach($result as $v){
        ....
    }
    ....

####历史: 1.2019-06-04 query完成,原来查询(支持sql99语法的)sql语句基本无需改变;

2.2019-06-23 mysqlToEs 数据迁移,同步完成,目前迁移同步的有bd_order,md_member两个表,兼容SQL 99

语法,支持以下数据类型:

    ============= ===========
       DB Type 对应 PHP Type
    ============= ===========
    `boolean`__   `boolean`__
    `byte`__
    `short`__     `integer`__
    `integer`__   `integer`__
    `long`__      `integer`__
    `float`__     `float`__
    `double`__    `float`__
    `string`__    `string`__
    `ip`__        `string`__
    `timestamp`__ `integer`__
    `geo_point`__ `array`__
    `geo_shape`__ `object`__
    `object`__    `object`__
    `array`__     `array`__
    ============= ===========

故原mysql中的date,time,datetime,timestamp迁移后转为timestamp类型,timestamp类型字段输出时可使用date_format函数,100%兼容mysql的 date_format函数 3.不支持事务及批量增删改操作