精华内容
下载资源
问答
  • SequoiaDB是国内为数不多的自主研发的分布式数据库,特点是同时支持文档存储和块存储,支持标准SQL和事务功能,支持复杂索引查询、与Hadoop、Hive、Spark都有较深度的集成。目前SequoiaDB已经在Github开源。...
  • sequoiadb jdbc 驱动 sequoiadb.jar sequoiadb java 增删改查, 请看博客: http://ian.wang
  • java开发,所需使用的sequoiadb对应jar包,2.6版最新
  • SequoiaDB 是一个分布式的面向文档的 NoSQL 数据库。 引擎: sequoiadb -- SequoiaDB Engine sdbstart -- SequoiaDB Engine start sdbstop -- SequoiaDB Engine stop sdblist -- SequoiaDB Engine list sdbfmp -- ...
  • 本文档将介绍 SequoiaDB 巨杉数据库中 MySQL 实例的相关配置。 支持的建表选项 选项 默认值 描述 AUTO_INCREMENT 1 自增字段的起始值,SequoiaDB 的自增字段不是严格递增,而是趋势递增,可参考 ...

    本文档将介绍 SequoiaDB 巨杉数据库中 MySQL 实例的相关配置。

    支持的建表选项

    选项默认值描述
    AUTO_INCREMENT1自增字段的起始值,SequoiaDB 的自增字段不是严格递增,而是趋势递增,可参考 SequoiaDB 自增字段章节
    CHARACTER SETutf8mb4字符数据的字符集
    COLLATEutf8mb4_bin字符数据的比较规则,不支持忽略大小写的字符比较规则,字符比较对大小写敏感
    COMMENT""表备注信息,用于指定更多 SequoiaDB 引擎的选项,可参考自定义表配置
    COMPRESSION""表压缩类型,选项有 ""(默认压缩类型)、"none"(关闭压缩)、"lzw"、"snappy",默认压缩类型为"lzw"
    ENGINESEQUOIADB表存储引擎,必须指定为 SEQUOIADB 才能使用本分布式存储引擎,一般无需显式指定

    示例

    • 分别通过 COMMENT 和 COMPRESSION 创建压缩类型为"snappy"的表(以下两条语句功能完全相同)

      mysql> CREATE TABLE t1 (id INT) ENGINE=SEQUOIADB COMPRESSION='snappy';
      mysql> CREATE TABLE t2 (id INT) COMMENT='sequoiadb:{ table_options: { CompressionType: "snappy" } }';

      Copy

    • 指定表自增字段起始值为 1000

      mysql> CREATE TABLE tb (id INT AUTO_INCREMENT PRIMARY KEY) AUTO_INCREMENT=1000;

      Copy

    自定义表配置

    用户在 MySQL 上创建表时,可以在表选项 COMMENT 中指定关键词"sequoiadb",并在其后添加一个 json 对象用于传入自定义的表配置参数。格式如下:

    COMMENT [=] "[string,] sequoiadb:{ [table_options:{...}, partition_options:{...}, auto_partition:<true|false>] }"

    Copy

    具体配置参数如下表:

    参数名类型描述是否必填
    stringstring用户自定义注释字符串
    table_optionsjson创建集合的相关参数,详细参数可参考 SequoiaDB 创建集合选项
    partition_optionsjson分区的属性,用于指定 RANGE/LIST 分区表的分区属性,详细参数可参考 SequoiaDB 创建集合选项
    auto_partitionboolean是否创建分区表,取值为 false 则显式创建非分区表

    Note:

    • use_partition 已弃用,3.2.4 版本更名为 auto_partition。
    • 引擎配置项相应更名为 sequoiadb_auto_partition。

    示例

    • 在 SequoiaDB 上创建根据时间进行范围切分的表

      mysql> CREATE TABLE business_log(ts TIMESTAMP, level INT, content TEXT, PRIMARY KEY(ts))
            ENGINE=sequoiadb
            COMMENT="Sharding table for example, sequoiadb:{ table_options: { ShardingKey: { ts: 1 }, ShardingType: 'range' } }";

      Copy

    • 在 引擎配置项 sequoiadb_auto_partition 为 ON 时,指定 auto_partition 为 false 显式创建普通表

      mysql> CREATE TABLE employee(id INT PRIMARY KEY, name VARCHAR(128) UNIQUE KEY)
            ENGINE=sequoiadb
            COMMENT='sequoiadb:{ auto_partition: false }';

      Copy

    • 在 SequoiaDB 上创建压缩类型为"lzw"的表,通过 ALTER TABLE 修改表压缩类型为"snappy"

      mysql> CREATE TABLE employee2(id INT PRIMARY KEY, name VARCHAR(128) UNIQUE KEY)
            ENGINE=sequoiadb
            COMMENT="sequoiadb:{ auto_partition: true, table_options:{CompressionType : 'lzw'} }";
      
      mysql> ALTER TABLE employee2 COMMENT="alter table of compress type,sequoiadb:{ auto_partition: true,
            table_options:{CompressionType : 'snappy'} }";

      Copy

      Note:

      ALTER TABLE 支持修改表备注(COMMENT)中的自定义注释,以及更改或追加 table_options 中的配置项,不支持修改 auto_partition。

    • 为分区指定 hash 切片数 Partition 属性,在表备注中指定 partition_options 等价于在每个分区备注中单独指定 partition_options(以下两个语句效果完全一致)

      CREATE TABLE goods (
         id INT NOT NULL,
         produced_date DATE,
         name VARCHAR(100),
         company VARCHAR(100)
      )
      COMMENT 'sequoiadb:{ partition_options: { Partition: 8192 } }'
      PARTITION BY RANGE COLUMNS (produced_date)
      SUBPARTITION BY KEY (id)
      SUBPARTITIONS 2 (
         PARTITION p0 VALUES LESS THAN ('1990-01-01'),
         PARTITION p1 VALUES LESS THAN ('2000-01-01'),
         PARTITION p2 VALUES LESS THAN ('2010-01-01')
      );
      
      CREATE TABLE goods (
         id INT NOT NULL,
         produced_date DATE,
         name VARCHAR(100),
         company VARCHAR(100)
      )
      PARTITION BY RANGE COLUMNS (produced_date)
      SUBPARTITION BY KEY (id)
      SUBPARTITIONS 2 (
         PARTITION p0 VALUES LESS THAN ('1990-01-01')
             COMMENT 'sequoiadb:{ "partition_options": { Partition: 8192 } }',
         PARTITION p1 VALUES LESS THAN ('2000-01-01')
             COMMENT 'sequoiadb:{ "partition_options": { Partition: 8192 } }',
         PARTITION p2 VALUES LESS THAN ('2010-01-01')
             COMMENT 'sequoiadb:{ "partition_options": { Partition: 8192 } }'
      );

      Copy

    SequoiaDB引擎配置使用说明

    配置 SequoiaDB 连接与鉴权

    sequoiadb_conn_addr

    该参数可以配置 MySQL 实例所连接的 SequoiaDB 存储集群,可以配置一个或多个协调节点的地址。使用多个时,地址之间要以逗号隔开。如 sdbserver1:11810,sdbserver2:11810。在配置多个地址时,每次连接会从地址中随机选择。在 MySQL 会话数很多时,压力会基本平均地分摊给每个协调节点。

    • 类型:string
    • 默认值:"localhost:11810"
    • 作用范围:Global
    • 是否支持在线修改生效:是

    sequoiadb_user

    该参数可以配置 SequoiaDB 集群鉴权的用户。SequoiaDB 鉴权支持明文密码和密码文件两种方式,建议采用密码文件的方式建立连接。

    • 类型:string
    • 默认值:""
    • 作用范围:Global
    • 是否支持在线修改生效:是

    sequoiadb_password

    该参数可以配置 SequoiaDB 集群鉴权的明文密码。

    • 类型:string
    • 默认值:""
    • 作用范围:Global
    • 是否支持在线修改生效:是

    sequoiadb_token 和 sequoiadb_cipherfile

    这两个参数可以配置 SequoiaDB 集群鉴权的加密口令和密码文件路径。在配置前,需通过 sdbpassword 工具生成密码文件,具体可参考数据库密码工具章节。

    • 类型:string
    • 默认值:sequoiadb_token:"",sequoiadb_cipherfile:"~/sequoiadb/passwd"
    • 作用范围:Global
    • 是否支持在线修改生效:是

    Note:

    • 以上配置在命令行修改后,均在建立新连接时才生效,不影响旧连接。
    • 两种密码都配置的情况下,优先使用明文密码。

    配置自动分区功能

    sequoiadb_auto_partition

    该参数可以配置 MySQL 是否使用自动分区功能。自动分区可以普遍提升 SequoiaDB 的性能。启动时,在 MySQL 上创建表将同步在 SequoiaDB 上创建对应的分区表(散列分区,包含所有复制组)。自动分区时,分区键按顺序优先使用主键字段和唯一索引字段。如果两者都没有,则不做分区。

    如果开启自动分区后,部分表不希望被分区,可以在自定义表配置中指定 auto_partition 为 false。

    • 类型:boolean
    • 默认值:ON
    • 作用范围:Global
    • 是否支持在线修改生效:是

    Note:

    自动分区时,主键或唯一索引只在建表时对应分区键,建表后添加、删除主键或唯一索引都不会更改分区键。

    配置默认副本数

    sequoiadb_replica_size

    该参数可以配置表默认的写操作需同步的副本数,取值范围为[-1,7]。副本数多时,数据一致性强度高,但性能会有所下降;副本数少时,则反之。具体可参考 SequoiaDB 创建集合的 ReplSize 参数

    • 类型:int32
    • 默认值:1
    • 作用范围:Global
    • 是否支持在线修改生效:是

    配置批量插入

    sequoiadb_use_bulk_insert

    该参数可以配置是否开启批量插入功能。批量插入可以提升 SequoiaDB 存储引擎的插入性能。在关闭功能时,MySQL 的批量插入在 SequoiaDB 中是逐条的插入;而开启时,SequoiaDB 存储引擎会把 MySQL 的一个批次分解成若干个 sequoiadb_bulk_insert_size 大小的批次进行插入;例如,MySQL 批量插入 1024 条记录,在 sequoiadb_bulk_insert_size 为 100 时,SequoiaDB 存储引擎会进行 10 次记录数为 100 的批量插入,和 1 次记录数为 24 的批量插入。

    • 类型:boolean
    • 默认值:ON
    • 作用范围:Global
    • 是否支持在线修改生效:是

    sequoiadb_bulk_insert_size

    该参数可以配置 SequoiaDB 每次进行批量插入的记录数,取值范围为[1,100000]。在进行插入性能的调优时,可以根据实际适当调整这个值。

    • 类型:int32
    • 默认值:2000
    • 作用范围:Global
    • 是否支持在线修改生效:是

    配置性能优化参数

    sequoiadb_selector_pushdown_threshold

    该参数可以配置查询字段下压的触发阈值,取值范围为[0,100]。查询字段不下压时,SequoiaDB 集群总是返回完整记录给 MySQL,由 MySQL 过滤有用字段;而在查询字段下压时,SequoiaDB 集群只返回 MySQL 所需字段。在查询字段个数/表总字段个数的百分比小于等于该阈值时查询字段下压,否则不下压。下压查询字段可以节省了网络传输,但同时也会增加 SequoiaDB 工作量,可以根据实际适当调整。

    • 类型:uint32
    • 默认值:30
    • 作用范围:Global,Session
    • 是否支持在线修改生效:是

    sequoiadb_optimizer_options

    该参数可以配置是否开启优化操作。可填选项如下:
    "direct_count":将 count 语句直接下压到 SeuoiaDB 执行。优化前,SELECT COUNT(*) 会请求 SequoiaDB 返回表中的所有记录,由 MySQL 进行计数;优化后,SELECT COUNT(*) 会对接到 SequoiaDB 的 SdbCollection.count() 方法,由 SequoiaDB 进行计数。
    "direct_update":将 update 语句直接下压到 SeuoiaDB 执行。优化前,MySQL 会先查询匹配记录,然后逐条记录地下发更新请求。优化后,在符合条件的场景下,只需下发一次更新请求,从而减少网络 IO。
    "direct_delete":将 delete 语句直接下压到 SeuoiaDB 执行。原理与 direct_update 相似,可以减少网络IO。
    "direct_sort":将 order by 和 group by 直接下压到 SeuoiaDB 执行。优化前,排序操作在单个 MySQL 实例上完成。优化后,排序操作由 SequoiaDB 完成。得益于 SequoiaDB 多节点并发排序的能力,性能可以得到提升。
    "direct_limit":将 limit 和 offset 直接下压到 SequoiaDB 执行。优化前,SequoiaDB 需返回所有匹配记录,limit 和 offset 操作在 MySQL 实例进行。优化后,在符合条件的场景下,SequoiaDB 只需返回 limit 指定的记录数。该选项与 direct_sort 结合使用,可以极大地提升分页查询效率。

    • 类型:set
    • 默认值:"direct_count, direct_delete, direct_update, direct_sort, direct_limit"
    • 作用范围:Global,Session
    • 是否支持在线修改生效:是

    配置事务功能

    sequoiadb_use_transaction

    该参数可以配置事务功能。在业务无需事务功能时,可设置为 OFF,从而节省不必要的开销。

    • 类型:boolean
    • 默认值:ON
    • 作用范围:Global
    • 是否支持在线修改生效:否

    sequoiadb_rollback_on_timeout

    该参数可以配置记录锁超时是否中断并回滚整个事务。设置为开启后,遇到记录锁超时错误后会中断并且回滚整个事务,否则只会回滚最后一条 SQL 语句。

    • 类型:boolean
    • 默认值:OFF
    • 作用范围:Global,Session
    • 是否支持在线修改生效:是

    sequoiadb_lock_wait_timeout

    该参数可以配置事务锁等待超时时间。

    • 类型:int32
    • 默认值:60
    • 取值范围:[0,3600]
    • 作用范围:Glocal,Session
    • 是否支持在线修改生效:是

    配置统计信息分析

    sequoiadb_stats_mode

    该参数可以配置分析(ANALYZE TABLE)模式。
    取值如下:
    1:表示进行抽样分析,生成统计信息
    2:表示进行全量数据分析,生成统计信息
    3:表示生成默认的统计信息
    4:表示加载统计信息到 SequoiaDB 缓存中
    5:表示清除 SequoiaDB 缓存的统计信息

    • 类型:int32
    • 默认值:1
    • 作用范围:Global
    • 是否支持在线修改生效:是

    sequoiadb_stats_sample_num

    该参数可以指定抽样的记录个数,取值范围为[100,10000],指定 0 表示缺省。该参数不能与 sequoiadb_stats_sample_percent 同时指定。

    • 类型:int32
    • 默认值:200
    • 作用范围:Global
    • 是否支持在线修改生效:是

    sequoiadb_stats_sample_percent

    该参数可以指定抽样的比例,取值范围为[0.0,100.0],指定 0.0 表示缺省。表记录数和比例的乘积为抽样的记录数。个数会自动调整在 100~10000 之间(小于 100 调整为 100,大于 10000 调整为 10000)。该参数不能与 sequoiadb_stats_sample_num 同时指定。

    • 类型:double
    • 默认值:0.0
    • 作用范围:Global
    • 是否支持在线修改生效:是

    sequoiadb_stats_cache

    该参数可以配置是否加载 SequoiaDB 统计信息到 MySQL 缓存。统计信息缓存可以帮助生成更高效的访问计划,但会有少量的加载开销。关闭时,则使用默认规则生成访问计划,不使用统计信息。

    • 类型:boolean
    • 默认值:ON
    • 作用范围:Global
    • 是否支持在线修改生效:是

    其它配置

    sequoiadb_alter_table_overhead_threshold

    该参数可以配置表开销阈值。当表记录数超过这个阈值,需要全表更新的更改操作将被禁止。这个限制是为了防止对大表误进行更改操作,因为大表的更新会花费较多的时间。该阈值对添加 DEFAULT NULL 的列、数据类型扩容等无需更新的轻量操作不生效。如确认要对大表结构进行更改,在线上调阈值后,重新执行更改操作即可。

    • 类型:int64
    • 默认值:10000000
    • 作用范围:Global,Session
    • 是否支持在线修改生效:是

    sequoiadb_execute_only_in_mysql

    该参数可以配置 DQL/DML/DDL 语句只在 MySQL 执行,不会下压到 SequoiaDB 执行。即 DDL 只会变更 MySQL 的表元数据信息,而不会变更 SequoiaDB 相应表元数据;DQL/DML 所有查询和变更都为空操作,不会实际查询和修改 SequoiaDB 相应表的数据。

    • 类型:boolean
    • 默认值:OFF
    • 作用范围:Global,Session
    • 是否支持在线修改生效:是

    sequoiadb_debug_log

    该参数可以配置 MySQL 日志是否会打印 SequoiaDB 存储引擎有关 debug 信息。

    • 类型:boolean
    • 默认值:OFF
    • 作用范围:Global
    • 是否支持在线修改生效:是

    sequoiadb_error_level

    该参数可以配置错误级别,可选的配置项有 error 和 warning,用于控制连接器的某些错误返回的方式(报错或警告)。当 SQL 语句执行出错时,若该参数配置为 error,则连接器直接返回错误信息给客户端;若该参数配置为 warning,则连接器返回警告信息给客户端。用户可根据 warning 查询详细的错误信息。该参数仅适用于 update ignore 更新分区键失败时的错误信息。

    • 类型:enum
    • 默认值:error
    • 作用范围:Global
    • 是否支持在线修改生效:是

    SequoiaDB引擎配置修改方式

    配置参数有以下三种修改方式:

    • 通过工具 sdb_mysql_ctl 修改配置

      $ bin/sdb_mysql_ctl chconf myinst --sdb-auto-partition=OFF

      Copy

    • 通过实例数据目录下的配置文件 auto.cnf,在[mysqld]一栏添加/更改对应配置项

      sequoiadb_auto_partition=OFF

      Copy

      Note:

      修改配置文件后需要重新启动 MySQL 服务

    • 通过 MySQL 命令行修改

      mysql> SET GLOBAL sequoiadb_auto_partition=OFF;

      Copy

      Note:

      通过命令行方式修改的配置为临时有效,当重启 MySQL 服务后配置将失效,若需要配置永久生效则必须通过配置文件的方式修改。

    MySQL常用系统配置

    参数名类型动态生效动态范围默认值说明
    max_connectionsint32YesGlobal1024客户端最大连接数
    max_prepared_stmt_countint32YesGlobal128000最大预编译语句数
    sql_modesetYesGlobal,SessionSTRICT_TRANS_TABLES,
    ERROR_FOR_DIVISION_BY_ZERO,
    NO_AUTO_CREATE_USER,
    NO_ENGINE_SUBSTITUTION
    SQL 模式,取值意义可参考 MySQL SQL 模式
    character_set_serverstringYesGlobal,Sessionutf8mb4默认字符集
    collation_serverstringYesGlobal,Sessionutf8mb4_bin默认校对集
    default_storage_enginestringYesGlobal,SessionSequoiaDB默认存储引擎
    lower_case_table_namesint32NoGlobal0表名大小写策略,取 0 时,大小写敏感;取 1 时,所有表名均以小写存储;取 2 时,表名以原样存储,但以小写进行比较

    Note:

    • 在系统最大文件句柄数不足时,max_connections 可能被自动调整。如果发现修改该配置没有生效,可检查系统 limit 设置和 MySQL 日志。
    • SequoiaDB 不支持大小写敏感的校对集。
    • 在 Linux 平台下,MySQL 默认表名大小写敏感。更改成大小写不敏感后有可能导致匹配不到原表,应谨慎使用。

     

    更多信息请访问巨杉数据库官网

    展开全文
  • SequoiaDB,即巨杉数据库,是目前国产数据库中还不错的一款数据库管理系统软件,数据库底层支持JSON的形式的数据结构存储,那么很自然大家就想到了MongoDB,根据我所了解的情况,目前很多使用了MongoDB数据库的银行...

    一、背景

    SequoiaDB,即巨杉数据库,是目前国产数据库中还不错的一款数据库管理系统软件,数据库底层支持JSON的形式的数据结构存储,那么很自然大家就想到了MongoDB,根据我所了解的情况,目前很多使用了MongoDB数据库的银行或政府机构都开始把国外的某些数据库逐渐替换为国内的数据库,而对于国内使用MongoDB的机构,则有意愿替换成国产的巨杉数据库,有些已经完成数据库的迁移,有些正在做,有些即将开始。

    说到这里,就出现了大家非常关注的问题:使用了MongoDB数据库的软件系统或应用平台,如何顺利的迁移到SequoiaDB数据库上?

    本文会做一个简单的说明与教程。

    根据官网上的解决方案(http://contrast.sequoiadb.com/cn/)介绍:有如下几个项目进行了巨杉数据库的改造与迁移:

    1、某政府电子政务中心的数据平台

    2、某银行对公知识图谱

    3、某企业营销平台中的标签管理

    4、某银行去中心化福费廷项目

    从技术方面来讲,对于MongoDB项目迁移到SequoiaDB数据库时,大概有如下3种处理逻辑:

    1、使用巨杉数据库的原生Java API,重写项目的数据库操作功能模块

    2、基于原生Java API封装出第三方框架,便于快速开发,例如自主开发一套Spring Data SequoiaDB

    3、使用某种中间层技术,完成数据库传输通信的自动兼容。

    本文主要介绍第3种实现方案,因为这种处理逻辑的优点为:使用了Spring Data MongoDB的Java项目无需改动开发代码,可以快速完成应用系统的平滑迁移与改造。

    二、环境准备

    目前官方的社区版不支持MongoDB的兼容方式(未来可能某一天会发布出来),企业版是可以的,也就是说用企业版的巨杉数据库,可以兼容MongoDB,这句话的意思就是说:我们可以像使用MongoDB的方式或直接使用MongoDB的方式来操作和访问巨杉数据库,即用MongoDB的Java API来操作和访问巨杉数据库,目前这种处理逻辑可以满足常见的CRUD操作。所以我们需要如下环境:
    (1)、企业版的巨杉数据库环境

    (2)、兼容MongoDB访问的巨杉Fap驱动文件

    本文不介绍巨杉数据库的安装操作,可以去看官网上的详细说明,目前官网上也开通了对于巨杉数据库SCDA、SCDP、SCDD相关的认证,感兴趣和有需要的同学可以去考一下。

    1、在安装了企业版的巨杉数据库环境后,我们在命令行输入如下命令查看巨杉数据库的版本是否为企业版:

    2、准备好mongodb兼容驱动文件:libfapmongo3.so文件,把这个文件放到巨杉安装目录下的bin目录,这里我的目录是/opt/sequoiadb/bin/fap目录下,然后找到巨杉数据库协调节点的配置文件,协调节点的配置文件的目录为:/opt/sequoiadb/conf/local/11810/,增加fap属性,并设置该驱动文件的位置,截图如下:

    3、然后我们输入命令重新启动数据库即可,重新启动数据库的命令如下:

    sdbstop -all
    sdbstart -t all

    是否启动成功,输入sdblist命令查看即可,如果存在启动失败的节点,则说明配置有误。启动成功后,默认会占用一个11817的端口,输入如下命令查看端口是否处于监听状态:

    netstat -an | grep 11817

    三、代码开发

    在企业版的巨杉数据库设置好MongoDB的fap方式兼容以后,代码中就可以Spring Data MongoDB来操作和访问巨杉数据库。

    1、首先我们在巨杉数据库中创建一个集合空间(即对应的MongoDB中数据库的概念)和一个集合,其中集合空间为:mongodb_test,

    集合名称为:c_test_log,在linux命令行中输入su - sdbadmin切换用户,然后再执行sdb命令进入到巨杉数据库的控制台,然后分别输入如下命令:连接SDB、创建集合空间、创建集合、查询集合

    var db = new Sdb("localhost",11810)
    db.createCS("mongodb_test")
    db.mongodb_test.createCL("c_test_log")
    db.mongodb_test.c_test_log.find()

    2、对于代码层面的开发,这里基于Spring Boot+Spring Data MongoDB框架进行操作,其中框架版本为:

    Spring Boot:2.1.7

    Spring Data MongoDB:2.1.10

    MongoDB Driver 3.8.2

    使用IDEA开发工具新创建一个Spring Boot项目,然后引入Spring Data MongoDB的开发包,本文的pom.xml配置文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.7.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.wxbz</groupId>
        <artifactId>sdb-mongodb-test</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>sdb-mongodb-test</name>
        <description>SpringBoot+Spring Data MongoDB(To Access SequoiaDB)</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!--spring data mongodb -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-mongodb</artifactId>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.1.7.RELEASE</version>
                </plugin>
            </plugins>
        </build>
        
    </project>

    3、在application.yml文件中,设置巨杉数据库服务器的IP、端口和数据库信息,这里需要写上fap的11817端口,非11810端口,这个文件设置好以后程序中会自动注入MongoTemplate实例:

    server:
      port: 9091  
    spring:
      data:
        mongodb:
          host: 192.168.4.108
          port: 11817
          database: mongodb_test

    4、在entity包下面创建和c_test_log匹配的实体类,代码如下:

    @Document(collection = "c_test_log")
    public class TestLog implements Serializable {
        
        private String logId;
        
        private String content;
        
        private String host;
        
        private List<String> steps;
        
        private int executeCount;
        
        private Date createDate;
    
        ...省略getter/setter等方法
    }

    5、创建操作数据库的接口:

    /**
     * 数据库操作接口
     * @param <T>
     */
    public interface ITestLogDao<T> {
    
        public void save(T testLog);
    
        public T getById(String id);
    
        public List<T> getAll(Class<T> tClass);
    
        public void deleteById(String id);
    
        public void update(T testLog);
    
    }

    6、编写操作巨杉数据库的Dao层的实现类

    /**
     * dao操作实现类
     */
    @Repository
    public class TestLogDaoImpl implements ITestLogDao<TestLog> {
    
        /**
         * 注入MongoTemplate实例,Spring Boot会自动处理
         */
        @Autowired
        private MongoTemplate mongoTemplate;
    
        public MongoTemplate getMongoTemplate(){
            return this.mongoTemplate;
        }
    
        @Override
        public void save(TestLog testLog) {
            this.getMongoTemplate().save(testLog);
        }
    
        @Override
        public TestLog getById(String id) {
            Criteria criteria = Criteria.where("logId").is(id);
            return this.getMongoTemplate().findOne(new Query(criteria),TestLog.class);
        }
    
        @Override
        public List<TestLog> getAll(Class<TestLog> testLogClass) {
            return this.getMongoTemplate().findAll(TestLog.class);
        }
    
        @Override
        public void deleteById(String id) {
            Criteria criteria = Criteria.where("logId").is(id);
            this.getMongoTemplate().remove(new Query(criteria),TestLog.class);
        }
    
        @Override
        public void update(TestLog testLog) {
            Criteria criteria =  Criteria.where("logId").is(testLog.getLogId());
            if(criteria != null){
                Update update = new Update();
                update.set("content", testLog.getContent());
                update.set("executeCount",testLog.getExecuteCount());
                this.getMongoTemplate().updateFirst( new Query(criteria), update,TestLog.class);
            }
        }
    }

    7、编写以下相关测试方法,编写测试保存方法代码如下:

    @Test
        public void saveTest(){
            TestLog testLog = new TestLog();
            testLog.setLogId(UUID.randomUUID().toString());
            testLog.setContent("测试日志1");
            testLog.setCreateDate(new Date());
            testLog.setExecuteCount(15);
            testLog.setSteps(Arrays.asList(new String[]{"第1个步骤","第2个步骤"}));
            testLogDao.save(testLog);
            System.out.println("*********保存成功************");
        }

    使用图形化测试工具MongoChef连接巨杉数据库服务器的11817端口,可以看到当前插入的数据,如下所示:

    8、编写如下测试查询代码:

     @Test
     public void queryTest(){
            List<TestLog> logList = testLogDao.getAll(TestLog.class);
            System.out.println("*********查询成功************" + logList.get(0).getContent());
     }

    9、编写如下代码测试修改:

     @Test
        public void updateTest(){
            TestLog testLog = new TestLog();
            testLog.setLogId("09aa8294-2d94-44d3-8f8e-a798ce46e022");
            testLog.setContent("测试日志1被修改");
            testLogDao.update(testLog);
            System.out.println("*********修改成功************");
        }

    使用图形化测试工具MongoChef连接巨杉数据库服务器的11817端口,可以看到当前被修改的测试数据

    10、编写如下代码测试删除:

     @Test
        public void deleteTest(){
            testLogDao.deleteById("09aa8294-2d94-44d3-8f8e-a798ce46e022");
            System.out.println("*********删除成功************");
        }

    这样基本的CURD操作代码都验证完成,可以完成一些常见的操作,目前对于某些MongoDB某些特性的代码,我暂时没有测试和使用。

    相信本篇文章的这些介绍,可以让大家知道本文的主题。

    目前基本实现了使用Spring Data MongoDB框架来操作和访问巨杉数据库,前提是企业版的巨杉3.4,同时配置了FAP驱动文件。

    相信在不久的将来,巨杉数据库完善了这个驱动文件后,应该会开放出来,毕竟中国使用MongoDB的机构也很多。

    本文只是简单的介绍了基本的操作,如果其他想要进行了解的可以进行留言或评论。如果想要学习巨杉数据库,可以去官网参加巨杉的SCDA、SCDP和SCDD的数据库认证,目前是免费的,感兴趣的可以学习一下。

    最后,希望本篇文章的介绍,可以让你从技术上了解下MongoDB的项目如何使用Spring Data MongoDB快速迁移到SequoiaDB上。

    对文章感兴趣的同学,可以关注我的公众号,最近也计划写写巨杉数据库的文章。

     

     

     

    展开全文
  • 巨衫数据库SequoiaDB是一款金融级分布数关系型数据库,主要面对高并发OLTP场景提供高性能、可靠性稳定以及无限水平扩展的数据库服务。用户可在SequoiaDB巨衫数据库中创建多种类型的数据库实例(支持MYSQL、...

    巨杉数据库SequoiaDB是一款金融级分布数关系型数据库,主要面对高并发OLTP场景提供高性能、可靠性稳定以及无限水平扩展的数据库服务。用户可在SequoiaDB巨杉数据库中创建多种类型的数据库实例(支持MYSQL、PostgreSQL、SparkSQL三种关系型数据库实例,类MongoDB的Json文档型数据库实例、以及S#对象存储与Posix文件系统的非结构化数据库实例),以满足上层不同应用程序各自的需求。本篇主要对巨杉数据库的命令行安装与部署进行分享。

    1 软件环境

    • Oracle Linux 6.9
    • Sequoia DB 3.4

    2 系统配置

    2.1 硬件要求

    需求项

    要求

    建议

    CPU

    - x86(Intel Pentium、Intel Xeon和AMD)32位Intel和AMD处理器

    - 64(64位AMD64和Intel EMT处理器)

    - PowerPC 7或者PowerPC 7+处理器

    建议采用X64(64位AMD64和Intel EM64T处理器)或PowerPC处理器

    磁盘

    至少20GB空间

    建议大于100GB磁盘空间

    内存

    至少1GB

    大于2GB物理内存

    网卡

    配备至少1张网卡

    建议至少配置1Gb网卡

    2.2 受支持的操作系统

    系统类型

    系统列表

    Linux

     

    - Red Hat Enterprise Linux (RHEL) 6

    - Red Hat Enterprise Linux (RHEL) 7

    - SUSE Linux Enterprise Server (SLES) 11 Service Pack 1 

    - SUSE Linux Enterprise Server (SLES) 11 Service Pack 2 

    - SUSE Linux Enterprise Server (SLES) 12 Service Pack 1 

    - Ubuntu 12.x 

    - Ubuntu 14.x 

    - Ubuntu 16.x 

    - CentOS 6.x 

    - CentOS 7.x 

    未在上述列表中列举的Linux操作系统不代表不能用于安装Sequoia DB。

    2.3 软件要求

    在安装Sequoia之前,应先对Linux系统相关的配置进行检查和设置,包括:

    • 配置主机名
    • 配置主机名/IP地址映射
    • 配置防火墙

    2.3.1 配置主机名

    [root@strong ~]# cat /etc/sysconfig/network

    NETWORKING=yes

    HOSTNAME=sdbserver1

    [root@strong ~]# cat /etc/hosts

    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.56.101 sdbserver1

    2.3.2 配置防火墙

    [root@strong ~]# service iptables stop

    iptables: Setting chains to policy ACCEPT: filter [ OK ]

    iptables: Flushing firewall rules: [ OK ]

    iptables: Unloading modules: [ OK ]

    [root@strong ~]# chkconfig iptables off

    [root@strong ~]# vim /etc/selinux/config

    SELINUX=disabled

    2.3.3 调整ulimit参数

    [root@strong ~]# vim /etc/security/limits.conf

    * soft core 0

    * soft data unlimited

    * soft fsize unlimited

    * soft rss unlimited

    * soft as unlimited

    参数说明:

    • core:数据库出现故障时产生core文件用于故障诊断,生产建议关闭;
    • data:数据库进程所允许分配的数据内存大小;
    • fsize:数据库进程所允许寻址的文件大小;
    • rss:数据库进程所允许的最大resident set大小;
    • as:数据库进程所允许最大虚拟内存寻址空间限制;

    [root@strong ~]# vim /etc/security/limits.d/90-nproc.conf

    * soft nproc unlimited

    参数说明:

    • 数据库所允许的最大线程数限制;

    2.3.4 调整内核参数

    [root@strong ~]# vim /etc/sysctl.conf

    vm.swappiness = 0

    vm.dirty_ratio = 100

    vm.dirty_background_ratio = 40

    vm.dirty_expire_centisecs = 3000

    vm.vfs_cache_pressure = 200

    vm.min_free_kbytes = 600000(物理内存的8%,单位为K,最大不超1GB)

    vm.overcommit_memory = 2

    vm.overcommit_ratio = 85

    [root@strong ~]# sysctl -p

    3 部署架构

    部署完成后Sequoia DB巨杉数据库的集群拓扑结构为三分区单副本,其中包括:1个SequoiaSQL-MySQL数据库实例节点、1个引擎协调节点、1个编目节点和3个数据节点。

    4 软件安装

    4.1 准备安装软件

    1)下载Sequoia DB安装软件

    下载地址:SequoiaDB巨杉数据库

    2)上传并解压缩安装软件

    [root@sdbserver1 ~]# tar zxvf sequoiadb-3.4-linux_x86_64.tar.gz
    
    sequoiadb-3.4/
    
    sequoiadb-3.4/setup.sh
    
    sequoiadb-3.4/unset.sh
    
    sequoiadb-3.4/sequoiasql-mysql-3.4-linux_x86_64-installer.run
    
    sequoiadb-3.4/readme.txt
    
    sequoiadb-3.4/sequoiasql-postgresql-3.4-x86_64-installer.run
    
    sequoiadb-3.4/sequoiadb-3.4-linux_x86_64-installer.run
    
    [root@sdbserver1 ~]# cd sequoiadb-3.4
    
    [root@sdbserver1 sequoiadb-3.4]# chmod u+x sequoia*
    
    [root@sdbserver1 sequoiadb-3.4]# ll
    
    total 853572
    
    -rwxrwxrwx. 1 nobody nfsnobody 1104 Jul 27 2019 readme.txt
    
    -rwxr--r--. 1 root root 756098844 Nov 15 00:19 sequoiadb-3.4-linux_x86_64-installer.run
    
    -rwxr--r--. 1 root root 104758705 Nov 15 00:19 sequoiasql-mysql-3.4-linux_x86_64-installer.run
    
    -rwxr--r--. 1 root root 13176565 Nov 15 00:20 sequoiasql-postgresql-3.4-x86_64-installer.run
    
    -rwxrwxrwx. 1 nobody nfsnobody 3861 Jul 2 2019 setup.sh
    
    -rwxrwxrwx. 1 nobody nfsnobody 5828 Jul 2 2019 unset.sh

    4.2 安装Sequoia DB数据库

    1)运行安装程序,选择语言为中文

    [root@sdbserver1 sequoiadb-3.4]# ./setup.sh
    
    Install sequoiadb Y/n: Y
    
    --------------------------begin to install sequoiadb-------------------------
    
    ./sequoiadb-3.4-linux_x86_64-installer.run --mode text
    
    Language Selection
    
    
    
    Please select the installation language
    
    [1] English - English
    
    [2] Simplified Chinese - 简体中文
    
    Please choose an option [1] : 2

    2)许可协议,默认

    Please choose an option [1] : 2
    
    ----------------------------------------------------------------------------
    
    由BitRock InstallBuilder评估本所建立
    
    
    
    欢迎来到 SequoiaDB Server 安装程序
    
    
    
    ----------------------------------------------------------------------------
    
    重要信息:请仔细阅读
    
    
    
    下面提供了两个许可协议。
    
    
    
    1. SequoiaDB 评估程序的最终用户许可协议
    
    2. SequoiaDB 最终用户许可协议
    
    
    
    如果被许可方为了生产性使用目的(而不是为了评估、测试、试用“先试后买”或演示)获得本程序,单击下面的“接受”按钮即表示被许可方接受 SequoiaDB 最终用户许可协议,且不作任何修改。
    
    
    
    如果被许可方为了评估、测试、试用“先试后买”或演示(统称为“评估”)目的获得本程序:单击下面的“接受”按钮即表示被许可方同时接受(i)SequoiaDB 评估程序的最终用户许可协议(“评估许可”),且不作任何修改;和(ii)SequoiaDB 最终用户程序许可协议(SELA),且不作任何修改。
    
    
    
    在被许可方的评估期间将适用“评估许可”。
    
    
    
    如果被许可方通过签署采购协议在评估之后选择保留本程序(或者获得附加的本程序副本供评估之后使用),SequoiaDB 评估程序的最终用户许可协议将自动适用。
    
    
    
    “评估许可”和 SequoiaDB 最终用户许可协议不能同时有效;两者之间不能互相修改,并且彼此独立。
    
    
    
    这两个许可协议中每个协议的完整文本如下。
    
    
    
    评估程序的最终用户许可协议
    
    
    
    
    
    
    
    [1] 同意以上协议: 了解更多的协议内容,可以在安装后查看协议文件
    
    [2] 查看详细的协议内容
    
    请选择一个选项 [1] :

    3)输入安装路径后回车,后面的步骤选择默认选项

    ----------------------------------------------------------------------------
    
    请指定 SequoiaDB Server 将会被安装到的目录
    
    
    
    安装目录 [/opt/sequoiadb]:
    
    
    
    ----------------------------------------------------------------------------
    
    是否强制安装?强制安装时可能会强杀残留进程
    
    
    
    是否强制安装 [y/N]:
    
    
    
    
    
    ----------------------------------------------------------------------------
    
    数据库管理用户配置
    
    
    
    配置用于启动SequoiaDB的用户名、用户组和密码
    
    
    
    用户名 [sdbadmin]:
    
    
    
    用户组 [sdbadmin_group]:
    
    
    
    密码 [********] :
    
    确认密码 [********] :
    
    ----------------------------------------------------------------------------
    
    集群管理服务端口配置
    
    
    
    配置SequoiaDB集群管理服务端口,集群管理用于远程启动添加和启停数据库节点
    
    
    
    集群管理服务端口 [11790]:
    
    
    
    ----------------------------------------------------------------------------
    
    是否允许Sequoiadb相关进程开机自启动?
    
    
    
    Sequoiadb相关进程开机自启动 [Y/n]:
    
    
    
    
    
    ----------------------------------------------------------------------------
    
    是否安装OM服务
    
    
    
    [1] true
    
    [2] false
    
    [3] only
    
    请选择一个选项 [2] : 1
    
    
    
    ----------------------------------------------------------------------------
    
    设定现在已经准备将 SequoiaDB Server 安装到您的电脑.
    
    
    
    您确定要继续? [Y/n]:
    
    
    
    ----------------------------------------------------------------------------
    
    正在安装 SequoiaDB Server 于您的电脑中,请稍候.
    
    
    
    安装中
    
    0% ______________ 50% ______________ 100%
    
    ########################################
    
    ----------------------------------------------------------------------------
    
    安装程序已经完成安装 SequoiaDB Server 于你的电脑中.
    
    
    
    ----------------------------end install sequoiadb----------------------------

    4)提示是否安装MySQL或PostgreSQL实例,默认安装MYSQL实例,选择中文

    Install 1:sequoiasql-mysql or 2:sequoiasql-postgresql, [1]: --------------------------begin to install sequoiasql-mysql-------------------------
    
    ./sequoiasql-mysql-3.4-linux_x86_64-installer.run --mode text
    
    Language Selection
    
    
    
    Please select the installation language
    
    [1] English - English
    
    [2] Simplified Chinese - 简体中文
    
    Please choose an option [1] : 2
    
    ----------------------------------------------------------------------------
    
    由BitRock InstallBuilder评估本所建立
    
    
    
    欢迎来到 SequoiaSQL MySQL Server 安装程序
    
    
    
    ----------------------------------------------------------------------------
    
    GNU 通用公共授权
    
    第二版, 1991年6月
    
    著作权所有 (C) 1989,1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
    
    允许每个人复制和发布本授权文件的完整副本,但不允许对它进行任何修改。
    
    
    
    [1] 同意以上协议: 了解更多的协议内容,可以在安装后查看协议文件
    
    [2] 查看详细的协议内容
    
    请选择一个选项 [1] :
    
    
    
    ----------------------------------------------------------------------------
    
    请指定 SequoiaSQL MySQL Server 将会被安装到的目录
    
    
    
    安装目录 [/opt/sequoiasql/mysql]:
    
    
    
    ----------------------------------------------------------------------------
    
    数据库管理用户配置
    
    
    
    配置用于启动SequoiaSQL-MySql的用户名、用户组和密码
    
    
    
    用户名 [sdbadmin]:
    
    
    
    用户组 [sdbadmin_group]:
    
    
    
    密码 [********] :
    
    确认密码 [********] :
    
    ----------------------------------------------------------------------------
    
    设定现在已经准备将 SequoiaSQL MySQL Server 安装到您的电脑.
    
    
    
    您确定要继续? [Y/n]:
    
    
    
    ----------------------------------------------------------------------------
    
    正在安装 SequoiaSQL MySQL Server 于您的电脑中,请稍候.
    
    
    
    安装中
    
    0% ______________ 50% ______________ 100%
    
    #########################################
    
    
    
    ----------------------------------------------------------------------------
    
    安装程序已经完成安装 SequoiaSQL MySQL Server 于你的电脑中.
    
    
    
    ----------------------------end install sequoiasql-mysql----------------------------

    4.3 安装后检查

    [root@sdbserver1 sequoiadb-3.4]# service sequoiasql-mysql status
    
    Status of service sequoiasql-mysql:
    
    running. (PID: 3522)
    
    [root@sdbserver1 sequoiadb-3.4]# su - sdbadmin
    
    [sdbadmin@sdbserver1 ~]$ sequoiadb --version
    
    SequoiaDB version: 3.4
    
    Release: 32435
    
    Git version: 485380326b0177244669df7906454a753a7fb900
    
    2019-11-14-23.37.58

    4.4 部署Sequoia DB及MySQL实例

    部署SequoiaDB数据库到本机上,包含1个Sequoia SQL-MySQL数据库实例节点,1个协调节点、1个编目节点和3个数据节点。

    4.4.1 集群部署

    1)切换到Sequoia DB快速部署脚本所在目录

    [sdbadmin@sdbserver1 ~]$ cd /opt/sequoiadb/tools/deploy/
    
    [sdbadmin@sdbserver1 deploy]$ ll
    
    total 60
    
    -rw-rw-rw- 1 sdbadmin sdbadmin_group 248 Nov 15 00:02 mysql.conf
    
    -rw-rw-rw- 1 sdbadmin sdbadmin_group 248 Nov 15 00:02 postgresql.conf
    
    -rw-r--r-- 1 sdbadmin sdbadmin_group 41493 Nov 15 00:02 quickDeploy.js
    
    -rwxr-xr-x 1 sdbadmin sdbadmin_group 3146 Nov 15 00:02 quickDeploy.sh
    
    -rw-r--r-- 1 sdbadmin sdbadmin_group 478 Nov 15 00:02 sequoiadb.conf

    2)查看快速部署脚本的Sequoia DB集群的配置信息

    [sdbadmin@sdbserver1 deploy]$ cat sequoiadb.conf
    
    role,groupName,hostName,serviceName,dbPath
    
    
    
    catalog,SYSCatalogGroup,localhost,11800,[installPath]/database/catalog/11800
    
    
    
    coord,SYSCoord,localhost,11810,[installPath]/database/coord/11810
    
    
    
    data,group1,localhost,11820,[installPath]/database/data/11820
    
    data,group2,localhost,11830,[installPath]/database/data/11830
    
    data,group3,localhost,11840,[installPath]/database/data/11840
    
    
    
    # Note: This configuration file only supports cluster mode, doesn't support standalone mode.

    3)查看快速部署脚本的Sequoia SQL-MySQL配置信息

    [sdbadmin@sdbserver1 deploy]$ cat mysql.conf
    
    instanceName,port,databaseDir,coordAddr
    
    myinst,3306,[installPath]/database/3306,-
    
    
    
    # Note: coordAddr, '-' means the first coord in sdb.conf. You can configure it by format hostName1:serviceName1 or [hostname1:serviceName1,hostname2:serviceName2]

    4)运行快速部署脚本,显示以下信息,Sequoia DB集群和SequoiaSQL-MySQL实例部署完成

    [sdbadmin@sdbserver1 deploy]$ ./quickDeploy.sh --sdb --mysql
    
    Execute command: /opt/sequoiadb/tools/deploy/./../../bin/sdb -f /opt/sequoiadb/tools/deploy/./quickDeploy.js -e 'var sdb=true;var mysql=true;'
    
    
    
    ************ Deploy SequoiaDB ************************
    
    Create catalog: sdbserver1:11800
    
    Create coord: sdbserver1:11810
    
    Create data: sdbserver1:11820
    
    Create data: sdbserver1:11830
    
    Create data: sdbserver1:11840
    
    
    
    ************ Deploy SequoiaSQL-MySQL *****************
    
    Create instance: [name: myinst, port: 3306]

    4.4.2 验证部署

    1)在MySQL实例中创建数据库和表,进行数据操作

    [sdbadmin@sdbserver1 deploy]$ mysql -h127.0.0.1 -uroot
    
    Welcome to the MySQL monitor. Commands end with ; or \g.
    
    Your MySQL connection id is 2
    
    Server version: 5.7.25 Source distribution
    
    
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    
    affiliates. Other names may be trademarks of their respective
    
    owners.
    
    
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    
    
    mysql> create database company;
    
    Query OK, 1 row affected (0.00 sec)
    
    
    
    mysql> use company;
    
    Database changed
    
    mysql> insert into employee (ename,age) values('Alen',28);
    
    Query OK, 1 row affected (0.02 sec)
    
    
    
    mysql> select * from employee;
    
    +-------+-------+------+
    
    | empno | ename | age |
    
    +-------+-------+------+
    
    | 1 | Alen | 28 |
    
    +-------+-------+------+
    
    1 row in set (0.00 sec)

    2)在数据引擎层查询数据

    [sdbadmin@sdbserver1 deploy]$ sdb
    
    Welcome to SequoiaDB shell!
    
    help() for help, Ctrl+c or quit to exit
    
    > var db=new Sdb('localhost',11810)
    
    Takes 0.005539s.
    
    > db.company.employee.find()
    
    {
    
    "_id": {
    
    "$oid": "5e7eb693f598f3daa0f79149"
    
    },
    
    "ename": "Alen",
    
    "age": 28,
    
    "empno": 1
    
    }
    
    Return 1 row(s).
    
    Takes 0.012581s.

    至此,Sequoia DB与Mysql实例安装、部署完毕;

     

    展开全文
  • SequoiaDB实例管理

    2020-05-20 19:13:38
    拷贝spark-sequoiadb_2.11-3.4.jar驱动连接器:cp /opt/sequoiadb/spark/spark-sequoiadb_2.11-3.4.jar /opt/spark-2.4.4-bin-hadoop2.7/jars/ 拷贝 SequoiaDB 的 java 驱动 sequoiadb-driver-3.4.jar:cp /opt/...

    创建MySQL实例:
    设置 SequoiaSQL-MySQL 实例程序权限为可执行:chmod +x sequoiasql-mysql-3.4-linux_x86_64-installer.run
    创建myinst实例:/opt/sequoiasql/mysql/bin/sdb_sql_ctl addinst myinst -D database/3306/
    在这里插入图片描述
    配置参数有三种修改方式:

    • 使用工具 sdb_sql_ctl 修改配置,配置生效需重新启动 MySQL 服务。例如: bin/sdb_sql_ctl chconf myinst --sdb-auto-partition=OFF
    • 修改实例数据目录下的配置文件 auto.cnf,在 [mysqld] 下添加/更改对应配置项,配置生效需重新启动 MySQL 服务。例如: sequoiadb_auto_partition=OFF
    • 通过 MySQL 命令行修改,配置临时有效,当重启MySQL服务后配置将失效。例如: SET GLOBAL sequoiadb_auto_partition=OFF ;
    • 详情:MySQL实例配置
      启动mysql:/opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u root
      在SequoiaDB中:
      查看存储引擎中的集合信息:db.list(SDB_LIST_COLLECTIONS);

    创建postgreSQL实例:
    创建PostgreSQL实例:/opt/sequoiasql/postgresql/bin/sdb_sql_ctl addinst myinst -D database/5432
    启动PostgreSQL实例:/opt/sequoiasql/postgresql/bin/sdb_sql_ctl start myinst
    检查创建的实例状态:/opt/sequoiasql/postgresql/bin/sdb_sql_ctl status
    进入SequoiaDB:
    创建company_domain逻辑域:db.createDomain("company_domain", [ "group1", "group2", "group3" ], { AutoSplit: true } );
    创建company集合空间:db.createCS("company", { Domain: "company_domain" } );
    创建employee集合:db.company.createCL("employee", {"ShardingKey": { "_id": 1}, "ShardingType": "hash", "ReplSize": -1, "Compressed": true, "CompressionType": "lzw", "AutoSplit": true, "EnsureShardingIndex": false } );
    插入数据:

     db.company.employee.insert( { "empno": 1, "ename": "Georgi", "age": 48 } );
    db.company.employee.insert( { "empno": 2, "ename": "Bezalel", "age": 21 } );
    

    创建company数据库:/opt/sequoiasql/postgresql/bin/sdb_sql_ctl createdb company myinst
    进入PostgreSQL shell:/opt/sequoiasql/postgresql/bin/psql -p 5432 company
    加载SequoiaDB连接驱动:create extension sdb_fdw
    配置与SequoiaDB连接参数:CREATE SERVER sdb_server FOREIGN DATA WRAPPER sdb_fdw OPTIONS (address '127.0.0.1', service '11810', preferedinstance 'A', transaction 'on');

    • 如果需要提供多个协调节点地址,options 中的 address 字段可以按格式 'ip1:port1,ip2:port2,ip3:port3’填写。此时,service 字段可填写任意一个非空字符串
    • preferedinstance 设置 SequoiaDB 的连接属性。多个属性以逗号分隔,如:preferedinstance ‘1,2,A’。详细配置请参考 preferedinstance 取值
    • transaction 设置 SequoiaDB 是否开启事务,默认为off。开启为on 更多 SequoiaDB 连接参数说明请参考 PostgreSQL 实例连接
      创建company数据库外表:
    CREATE FOREIGN TABLE employee 
    (
      empno INTEGER, 
      ename TEXT,
      age INTEGER
    ) SERVER sdb_server 
    OPTIONS (collectionspace 'company', collection 'employee', decimal 'on');
    
    • collectionspace 参数指定 SequoiaDB 数据库的集合空间名,该集合空间必须已经存在
    • collection 参数指定 SequoiaDB 数据库的集合名,该集合必须已经存在且属于 collectionspace 参数所指定的集合空间
    • decimal 参数值为 on 时,表示需要对接 SequoiaDB 的decimal字段 更多 PostgreSQL 实例外表创建参数请参考 PostgreSQL 实例连接
      更新表的统计信息:ANALYZE employee;

    创建SparkSQL实例
    连接MySQL实例:/opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u root
    创建metauser用户:CREATE USER 'metauser'@'%' IDENTIFIED BY 'metauser';
    给metauser用户授权:GRANT ALL ON *.* TO 'metauser'@'%';
    刷新权限:FLUSH PRIVILEGES;
    创建元数据库:CREATE DATABASE metastore CHARACTER SET 'latin1' COLLATE 'latin1_bin';
    在这里插入图片描述
    执行 ssh-keygen 生成公钥和密钥,执行后连续回车即可:ssh-keygen -t rsa
    执行 ssh-copy-id,把公钥拷贝到本机的 sdbadmin 用户:ssh-copy-id sdbadmin@sdbserver1
    进行Spark的配置目录:cd /opt/spark-2.4.4-bin-hadoop2.7/conf
    从模板中拷贝spark-env.sh文件:cp spark-env.sh.template spark-env.sh
    设置Spark实例的Master:echo "SPARK_MASTER_HOST=sdbserver1" >> spark-env.sh
    指定Spark实例的元数据信息存放的数据库信息。
    创建设置元数据库配置文件 hive-site.xml

    cat > /opt/spark-2.4.4-bin-hadoop2.7/conf/hive-site.xml << EOF
    <configuration>
       <property>
         <name>hive.metastore.schema.verification</name>
         <value>false</value>
       </property>
       <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://localhost:3306/metastore?useSSL=false</value>
          <description>JDBC connect string for a JDBC metastore</description>
       </property>
       <property>
          <name>javax.jdo.option.ConnectionDriverName</name>
          <value>com.mysql.jdbc.Driver</value>
          <description>Driver class name for a JDBC metastore</description>
       </property>
       <property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>metauser</value>
       </property>
       <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>metauser</value>
       </property>
       <property>
          <name>datanucleus.autoCreateSchema</name>
          <value>true</value>
          <description>creates necessary schema on a startup if one doesn't exist. set this to false, after creating it once</description>
       </property>
    </configuration>
    EOF
    

    检查是否创建成功:cat /opt/spark-2.4.4-bin-hadoop2.7/conf/hive-site.xml

    拷贝相关驱动:
    用户只要将 SequoiaDB for Spark 连接器 spark-sequoiadb_2.11-3.4.jar 和 SequoiaDB 的 Java 驱动 sequoiadb-driver-3.4.jar 加入 Spark 的 jar 目录即可,另外本示例使用了 MySQL 作为元数据存储数据库,也需要加入 MySQL 的 Java 驱动 mysql-jdbc.jar。
    拷贝spark-sequoiadb_2.11-3.4.jar驱动连接器:cp /opt/sequoiadb/spark/spark-sequoiadb_2.11-3.4.jar /opt/spark-2.4.4-bin-hadoop2.7/jars/
    拷贝 SequoiaDB 的 java 驱动 sequoiadb-driver-3.4.jar:cp /opt/sequoiadb/java/sequoiadb-driver-3.4.jar /opt/spark-2.4.4-bin-hadoop2.7/jars/
    拷贝 MySQL 的 java 驱动 mysql-jdbc.jar:cp /home/sdbadmin/soft/mysql-jdbc.jar /opt/spark-2.4.4-bin-hadoop2.7/jars/

    设置Spark日志级别:
    由于 Spark 默认日志级别为 INFO ,运行 spark-sql 客户端时会打印大量日志输出屏幕,为了避免这个问题把日志级别改为 ERROR。
    拷贝 log4j.properties:cp log4j.properties.template log4j.properties
    log4j.properties 中设置日志级别:sed -i 's/log4j.rootCategory=INFO, console/log4j.rootCategory=ERROR, console/g' log4j.properties
    检查日志输出配置是否成功:cat log4j.properties

    测试SparkSQL实例:
    进入 Spark 的安装目录:cd /opt/spark-2.4.4-bin-hadoop2.7
    启动 Spark:sbin/start-all.sh
    查看 Spark 的 master 和 worker 是否启动完成:jps
    启动 spark-sql 客户端:bin/spark-sql
    创建company数据库:create database company; use company;
    创建映射表:

    CREATE TABLE company.employee 
    (
    empno INT,
    ename STRING,
    age INT
    ) USING com.sequoiadb.spark OPTIONS (host 'localhost:11810', collectionspace 'company', collection 'employee', username '', password '');
    

    在这里插入图片描述测试运行sql:SELECT AVG(age) FROM company.employee;

    PostgreSQL实例访问数据:
    创建company数据库:/opt/sequoiasql/postgresql/bin/sdb_sql_ctl createdb company myinst
    进入PostgreSQL shell:/opt/sequoiasql/postgresql/bin/psql -p 5432 company
    加载SequoiaDB连接驱动:CREATE EXTENSION sdb_fdw;
    配置与SequoiaDB连接参数:

    CREATE SERVER sdb_server FOREIGN DATA WRAPPER sdb_fdw OPTIONS
    (
    address '127.0.0.1', 
    service '11810', 
    preferedinstance 'A', 
    transaction 'off'
    );
    
    • 如果需要提供多个协调节点地址,options 中的 address 字段可以按格式 'ip1:port1,ip2:port2,ip3:port3’填写。此时,service 字段可填写任意一个非空字符串
    • preferedinstance 设置 SequoiaDB 的连接属性。多个属性以逗号分隔,如:preferedinstance ‘1,2,A’。详细配置请参考 preferedinstance 取值
    • transaction 设置 SequoiaDB 是否开启事务,默认为off。开启为on 更多 SequoiaDB 连接参数说明请参考 PostgreSQL 实例连接
      创建company数据库外表:

    关联存储引擎中的集合:
    创建company数据库外表:

    CREATE FOREIGN TABLE employee 
    (
      empno INTEGER, 
      ename TEXT,
      age INTEGER
    ) SERVER sdb_server 
    OPTIONS (collectionspace 'company', collection 'employee', decimal 'on');
    
    • collectionspace 参数指定 SequoiaDB 数据库的集合空间名,该集合空间必须已经存在
    • collection 参数指定 SequoiaDB 数据库的集合名,该集合必须已经存在且属于 collectionspace 参数所指定的集合空间
    • decimal 参数值为 on 时,表示需要对接 SequoiaDB 的decimal字段 更多 PostgreSQL 实例外表创建参数请参考 PostgreSQL 实例连接

    更新表的统计信息:ANALYZE employee;

    SparkSQL实例中访问数据:
    在这里插入图片描述
    创建映射表:

    CREATE TABLE company.employee 
    (
    empno INT,
    ename STRING,
    age INT
    ) USING com.sequoiadb.spark OPTIONS (host 'localhost:11810', collectionspace 'company', collection 'employee', username '', password '');
    

    在这里插入图片描述运行测试sql:SELECT AVG(age) FROM company.employee;

    创建S3对象存储实例:
    配置巨杉数据库事务级别:
    在这里插入图片描述
    设置事务级别及配置为等锁模式:
    db.updateConf( { transactionon: true, transisolation: 1, translockwait: true } );

    配置SequoiaS3:
    进入SequoiaS3程序目录:cd /opt/sequoiadb/tools/sequoias3
    配置 SequoiaS3,打开 config 目录中的 application.properties 文件:cat config/application.properties
    增加以下内容至 application.properties 文件,配置对外监听端口:echo "server.port=8002" >> /opt/sequoiadb/tools/sequoias3/config/application.properties
    增加以下内容至 application.properties 文件,配置 coord 节点的 IP 和端口,可以配置多组并使用逗号分隔:echo "sdbs3.sequoiadb.url=sequoiadb://localhost:11810" >> /opt/sequoiadb/tools/sequoias3/config/application.properties
    在这里插入图片描述
    SequoiaS3配置

    启动S3实例:
    启动SequoiaS3:./sequoias3.sh start
    Note: 如需停止 SequoiaS3 进程,执行 stop -p {port} 停止监听指定端口的 SequoiaS3 进程,或执行 stop -a 停止所有 SequoiaS3 进程:./sequoias3.sh stop -p 8002

    操作bucket及文件对象:
    在本例中将使用 curl restful 方式来测试 s3 接口。
    创建存放数据文件的目录 /home/sdbadmin/s3:mkdir -p /home/sdbadmin/s3
    进入目录:cd /home/sdbadmin/s3

    创建同sdbbucket:
    在 shell 环境中设置变量及相关值:

    bucket="sdbbucket"  
    dateValue=`date -R`  
    resource="/${bucket}/"  
    contentType="application/octet-stream"  
    stringToSign="PUT\n\n\n${dateValue}\n${resource}"  
    s3Key="ABCDEFGHIJKLMNOPQRST"  
    s3Secret="abcdefghijklmnopqrstuvwxyz0123456789ABCD"  
    signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`  
    

    使用 curl 创建一个 sdbbucket:curl -v -X PUT "http://localhost:8002/${bucket}" -H "Host: localhost:8002" -H "Date: ${dateValue}" -H "Authorization: AWS ${s3Key}:${signature}"

    获取S3中的sdbbucket信息:
    使用 curl 获取上个小节创建的 sdbbucket 的信息:curl -v -X GET "http://localhost:8002" -H "Host: localhost:8002" -H "Date: ${dateValue}" -H "Authorization: AWS ${s3Key}:${signature}"

    向桶中写入文件:
    查看 /opt/sequoiadb/bin/sdb 文件的信息:ls -l /opt/sequoiadb/bin/sdb
    在 shell 环境中设置变量及相关值:

    file="/opt/sequoiadb/bin/sdb"
    objname="sdb"  
    bucket=sdbbucket  
    url="localhost:8002"  
    resource="/${bucket}/${objname}"  
    contentType="application/x-compressed-tar"  
    dateValue=`date -R`  
    stringToSign="PUT\n\n${contentType}\n${dateValue}\n${resource}"  
    s3Key="ABCDEFGHIJKLMNOPQRST"  
    s3Secret="abcdefghijklmnopqrstuvwxyz0123456789ABCD"  
    signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`
    

    使用 curl 向 sdbbucket 中写入文件 sdb,在 S3 中的名称是 sdb:curl -X PUT -T "${file}" -H "Host: ${url}" -H "Date: ${dateValue}" -H "Content-Type: ${contentType}" -H "Authorization: AWS ${s3Key}:${signature}" "http://${url}/${bucket}/${objname}"

    从桶中下载文件:
    使用 curl 从 sdbbucket 中读取文件对象"sdb",并存放到当前目录,保存的文件名为"sdb_download"。

    在 shell 环境中设置变量及相关值:

    file="./sdb_download"  
    objname="sdb"  
    bucket=sdbbucket  
    url="localhost:8002"  
    resource="/${bucket}/${objname}"  
    contentType="application/x-compressed-tar"  
    dateValue=`date -R`  
    stringToSign="GET\n\n${contentType}\n${dateValue}\n${resource}"  
    s3Key="ABCDEFGHIJKLMNOPQRST"  
    s3Secret="abcdefghijklmnopqrstuvwxyz0123456789ABCD"  
    signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`
    

    使用 curl 从 sdbbucket 中下载文件:curl -o ${file} -X GET -H "Host: ${url}" -H "Date: ${dateValue}" -H "Content-Type: ${contentType}" -H "Authorization: AWS ${s3Key}:${signature}" "http://${url}/${bucket}/${objname}"

    观察S3元数据:
    在这里插入图片描述查看创建的“sdbbucket” bucket的元数据:db.S3_SYS_Meta.S3_Bucket.find();
    查看上载的文件的元数据:db.S3_SYS_Meta.S3_ObjectMeta.find();
    文件对象所在的集合,这个集合由 S3 实例自动创建,并且默认按照每年每个季度分表,及每个季度产生一个新的Collection:
    db.S3_SYS_Data_2020_1.S3_ObjectData_Q1.listLobs();

    在S3实例中删除文件和桶:
    在 shell 环境中设置变量及相关值:

    objname="sdb"  
    bucket=sdbbucket  
    url="localhost:8002"  
    resource="/${bucket}/${objname}"  
    contentType="application/x-compressed-tar"  
    dateValue=`date -R`  
    stringToSign="GET\n\n${contentType}\n${dateValue}\n${resource}"  
    s3Key="ABCDEFGHIJKLMNOPQRST"  
    s3Secret="abcdefghijklmnopqrstuvwxyz0123456789ABCD"  
    signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`  
    

    使用 curl 命令 删除 sdbbucket 中的文件对象"sdb":curl -X DELETE -H "Host: ${url}" -H "Date: ${dateValue}" -H "Content-Type: ${contentType}" -H "Authorization: AWS ${s3Key}:${signature}" "http://${url}/${bucket}/${objname}"
    使用 curl 命令,从 SequoiaS3 中删除桶"sdbbucket":curl -X DELETE -H "Host: ${url}" -H "Date: ${dateValue}" -H "Content-Type: ${contentType}" -H "Authorization: AWS ${s3Key}:${signature}" "http://${url}/${bucket}"
    在这里插入图片描述
    创建NFS网络文件系统实例:
    查看fuse的版本信息:fusermount --version
    查看 SequoiaFS 实例程序:ls -lrt /opt/sequoiadb/bin/sequoiafs
    创建集合空间和集合:
    创建逻辑域:db.createDomain("fs_domain", [ "group1", "group2", "group3" ], { AutoSplit: true } );
    创建集合空间:db.createCS("fscs", { Domain: "fs_domain" } );
    创建 fscl 集合,存储挂载目录下文件的内容:db.fscs.createCL("fscl", { "ShardingKey": { "_id": 1}, "ShardingType": "hash", "ReplSize": -1, "Compressed": true, "CompressionType": "lzw", "AutoSplit": true, "EnsureShardingIndex": false } );
    创建挂载点及配置文件:
    在这里插入图片描述
    创建挂载点mountpoint:mkdir -p /opt/sequoiafs/mountpoint
    创建 SequoiaFS 的配置文件目录和日志目录:

    mkdir -p /opt/sequoiafs/conf/fscs_fscl/001/
    mkdir -p /opt/sequoiafs/log/fscs_fscl/001/
    

    产生一个空配置文件,SequoiaFS 服务在启动时会将指定的值写入该文件中,其他参数使用缺省值:touch /opt/sequoiafs/conf/fscs_fscl/001/sequoiafs.conf
    在这里插入图片描述
    sequoiafs /opt/sequoiafs/mountpoint -i localhost:11810 -l fscs.fscl --autocreate -c /opt/sequoiafs/conf/fscs_fscl/001/ --diagpath /opt/sequoiafs/log/fscs_fscl/001/ -o big_writes -o max_write=131072 -o max_read=131072
    在这里插入图片描述
    sequoiaFS实例参数配置
    查看挂载目录:
    本地 SequoiaFS 节点通过 mount 可以看到挂载信息。通过 sequoiafs 挂载上的 /opt/sequoiafs/mountpoint 目录,文件系统类型为 fuse.sequoiafs:mount
    在这里插入图片描述在这里插入图片描述
    查看 SequoiaFS 实例在 SequoiaDB 存储引擎存储的挂载信息:db.sequoiafs.maphistory.find();

    挂载目录下文件和目录操作:本章节将创建 fsdir 目录和 fsfile.txt 文件用于作为 SequoiaFS 实例的测试例子。

    创建目录:
    进入挂载目录:cd /opt/sequoiafs/mountpoint/
    创建目录:mkdir fsdir

    创建文件并写入内容:
    进入新建的 fsdir 目录:cd /opt/sequoiafs/mountpoint/fsdir
    使用echo重定向内容创建文件:echo 'hello, this is a fsfile!' >> fsfile.txt
    查看文件内容是否存在:cat fsfile.txt
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • SequoiaDB 技术简介

    2021-07-24 11:06:11
    整理分享SequoiaDB 技术简介想说两句应用与微服务发展应用架构转型SequoiaDB 特点SequoiaDB 三大核心应用场景SequoiaDB 计算存储分离架构SequoiaDB 支持多种数据库实例HTAP读写分离能力多租户WLM 负载管理能力SQL...
  • SequoiaDB 驱动开发包中的 sequoiadb.jar 文件拷贝到工程文件目录下(建议将其放置在其他所有依赖库目录,如 lib 目录); 在 Eclipse 主窗口左侧的“Package Explore”窗口中,选择开发工程,并点击鼠标右键;...
  • //创建Sequoiadb Sequoiadb sdb = new Sequoiadb(“ 192.168.23.57:50000”); sdb.Connect(“”,“”); // var cs = sdb.GetCollecitonSpace(“ dbo”); // GetCollection。var coll = cs.GetCollection...
  • 本课程主要介绍了巨杉数据库SequoiaDB v5.0版本升级的新功能特性 作为国内最早布局分布式数据库产品的公司,巨杉数据库自2011年成立起,9年来一直坚持以原生分布式数据库作为核心产品,聚焦于金融业。2017年,巨杉...
  • 在上一篇《最佳实践2 | SequoiaDB同城双中心部署规划》中,我们介绍了巨杉数据库的同城双中心灾备架构以及应对方案,本篇将继续分享如何利用巨杉数据库的灾难split/merge 恢复工具进行容灾处理。 “split” 工具的...
  • # tar -zxvf sequoiadb-3.4-linux_x86_64.tar.gz sequoiadb-3.4/ sequoiadb-3.4/setup.sh sequoiadb-3.4/unset.sh sequoiadb-3.4/sequoiasql-mysql-3.4-linux_x86_64-installer.run sequoiadb-3.4/readme.txt ...
  • 3.3 SequoiaDB 跨引擎事务 巨杉数据库SequoiaDB,作为分布式数据库,将数据分布在多台服务器中的数据节点中。 由SequoiaDB分布式存储引擎和SQL实例构成,底层的存储引擎提供统一的数据存储,上层的SQL实例只完成...
  • SDCC2015-巨杉数据库-王涛-SequoiaDB与Spark在金融行业中的应用
  • SequoiaDB中审计日志类型有:ACCESS,CLUSTER,SYSTEM,DML,DDL,DCL,DQL,INSERT,DELETE,UPDATE,OTHER。 2. 如果不指定,则默认为"SYSTEM|DDL|DCL", ALL取值表示开启所有,NONE关闭全部。 3. 更详细的内容可参考审计日志 ...
  • SequoiaDB_架构指南

    2015-10-20 16:20:52
    SequoiaDB_架构指南,巨彬数据库架构必备工具书。
  • 当应用程序直接连接到协调节点进行 API 操作时,应用可以通过 SequoiaDB 巨杉数据库客户端连接池配置多个 IP 地址与端口实现高可用配置。如果应用通过上层数据库实例进行访问,所有数据库实例均支持多个接入地址的高...
  • 在 Ubuntu 系统安装 SequoiaDB 数据库。
  • 巨衫数据库SequoiaDB是一款金融级分布数关系型数据库,主要面对高并发OLTP场景提供高性能、可靠性稳定以及无限水平扩展的数据库服务。用户可在SequoiaDB巨衫数据库中创建多种类型的数据库实例(支持MYSQL、...
  • 附赠巨杉SequoiaDB数据库所有版本的下载链接: 链接:https://pan.baidu.com/s/11PXMbwq2Px-EgzfFlDn8Vw 提取码:ljw8 官方下载地址为:...
  • sequoiadb入门

    2021-10-13 10:00:26
    sequoiadb入门sequoiadb入门部署安装SequoiaDB 安装MySQL 实例组件安装部署集群连接MySQL实例与数据库分布式存储引擎登录 MySQL Shell操作SDB Shell 操作配置完成后执行遇到的问题:功能快捷键合理的创建标题,有助...
  • Sequoiadb的SequoiaSql应用开发实践

    千次阅读 2017-10-31 15:25:17
    除了拥有高性能之外对标准SQL也是支持的,Sequoiadb能够对接spark之外,还有企业级的SequoiaSql可以选择,SequoiaSql是解析sql语言,Sequoiadb来执行SequoiaSql解析出的语言并执行相关命令,SequoiaSql相当于客户端...
  • SequoiaDB安装快速入门手把手教学

    千次阅读 2019-04-04 11:44:42
    巨杉数据库是一款金融级分布式关系型数据库,2017、2018连续两年入选Gartner数据库报告。 巨杉坚持产品从零开始自主研发,为用户提供安全可靠、性能卓越的海量数据存储...在安装 SequoiaDB 产品之前,请确保您选择...
  • CREATE TABLE employee_import_test ( empno INT AUTO_INCREMENT PRIMARY KEY, ename VARCHAR(128), age INT ) ENGINE=sequoiadb COMMENT="雇员表, sequoiadb: { table_options: { ShardingKey: { 'empno': 1 }, ...
  • SPARK_CLASSPATH="/opt/cloud/spark/jars/sequoiadb.jar:/opt/cloud/spark/jars/spark-sequoiadb_2.11-2.6.0.jar" SPARK_MASTER_IP="node03" SPARK_WORKER_MEMORY="712m" SPARK_WORKER_CORES=1 SPARK_WORKER_...
  • 本文档将介绍 SequoiaS3 支持的 Rest 接口。 GET Service 查询用户创建的所有存储桶 请求语法 ...Host: ip:port Date: date Authorization: authorization string ...查询结果以 XML 形式在响应消息体中显示。...
  • SequoiaDB-JDBC-源码

    2021-05-15 07:58:20
    SequoiaDB Java jdbc驱动 =============== public static void main(String args [])抛出SQLException,ClassNotFoundException {jdbcdriver =“ org.opencloudb.jdbc.sequoiadb.SequoiaDriver”; jdbcurl =“ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,468
精华内容 1,787
关键字:

SequoiaDB