当前位置: 首页 > news >正文

微信手机网站源码视频制作网站推荐

微信手机网站源码,视频制作网站推荐,无锡网站制作电话多少,重庆的公需科目在哪个网站做Oracle 是一个广泛使用的关系型数据库管理系统#xff0c;它支持 ACID 事务处理#xff0c;具有强大的安全性和可靠性#xff0c;因此被广泛应用于各种企业级应用程序。但是#xff0c;随着数据规模的增加和业务需求的变化#xff0c;Oracle 的一些限制和缺点也逐渐暴露出…Oracle 是一个广泛使用的关系型数据库管理系统它支持 ACID 事务处理具有强大的安全性和可靠性因此被广泛应用于各种企业级应用程序。但是随着数据规模的增加和业务需求的变化Oracle 的一些限制和缺点也逐渐暴露出来。例如Oracle 的许可证费用昂贵而且对于海量数据的处理能力较弱。因此一些企业开始寻找更高效、更灵活的解决方案以满足业务需求。 DolphinDB 是一种高效、分布式的数据管理和分析平台它可以轻松地处理海量数据支持实时数据分析和处理。DolphinDB 使用了基于内存的数据存储方式和多线程并行计算技术因此具有很高的性能和可扩展性适合于各种大规模数据处理场景。DolphinDB 还支持多种编程语言包括 SQL、Python、Java 等方便开发人员进行数据处理和分析。 在这种情况下数据迁移变得非常重要。迁移数据可以帮助企业将数据从 Oracle 迁移到更高效、更灵活的解决方案以便更好地管理和分析数据。此外数据迁移还可以帮助企业减少许可证费用提高数据处理的效率以及满足不断变化的业务需求。 实现方法 Oracle 迁移数据到 DolphinDB 的整体框架如下 从 Oracle 迁移数据到 DolphinDB 的方法有以下二种 ODBC 插件 ODBC(Open Database Connectivity) 插件是 DolphinDB 提供的通过 ODBC 接口访问 Oracle 的开源产品。使用插件配合 DolphinDB 脚本使用与服务器在同一个进程空间内运行能高效地完成 Oracle 数据到 DolphinDB 的数据写入。 ODBC 提供如下函数函数的具体使用请参考 ODBC/README_CN.md。 odbc::connect(connStr, [dataBaseType])odbc::close(conn)odbc::query(connHandle or connStr, querySql, [t], [batchSize], [tranform])odbc::execute(connHandle or connStr, SQLstatements)odbc::append(connHandle, tableData, tablename, [createTableIfNotExist], [insertIgnore]) DataX 驱动 DataX 是可扩展的数据同步框架将不同数据源的同步抽象为从源头数据源读取数据的 Reader 插件以及向目标端写入数据的 Writer 插件理论上 DataX 框架可以支持任意数据源类型的数据同步工作。 DolphinDB 提供基于 DataXReader 和 DataXWriter 的开源驱动。DolphinDBWriter 插件实现了向 DolphinDB 写入数据使用 DataX 的现有 reader 插件结合 DolphinDBWriter 插件即可实现从不同数据源向 DolphinDB 同步数据。用户可以在 Java 项目中包含 DataX 的驱动包开发从 Oracle 数据源到 DolphinDB 的数据迁移软件。 应用需求 很多之前存储在 Oracle 的业务数据可以通过上述的两种方式将数据同步到 DolphinDB 中。本文的实践案例基于 2021.01.04 号一天的逐笔成交数据数据量约 2721 万。其部分数据示例如下 SecurityIDTradeTimeTradePriceTradeQtyTradeAmountBuyNoSellNoTradeIndexChannelNoTradeBSFlagBizIndex6000202021.01.04T09:25:00.6303.3921007,119.8596178316197191N1237136000202021.01.04T09:25:00.6303.3910003,390.12994578316197201N1237146000202021.01.04T09:25:00.6303.399003,051.15803978316197211N1237156000202021.01.04T09:25:00.6303.39500016,950.158039158092197221N1237166000202021.01.04T09:25:00.6303.39660022,374.158039118594197231N1237176000202021.01.04T09:25:00.6303.3925008,475.158039138050197241N1237186000202021.01.04T09:25:00.6303.394001,356.42283138050197251N1237196000202021.01.04T09:25:00.6303.39100339.4228338902197261N1237206000202021.01.04T09:25:00.6303.39388313,163.374228345597197271N1237216000202021.01.04T09:25:00.6303.391200040,680.42283168862197281N123722 迁移案例与操作步骤 环境配置 本次案例中使用了以下数据库及插件各版本型号如下 Oracle 版本Oracle Database 21c Enterprise Edition社区版 unixODBC 版本2.3.7 DolphinDB Server 版本2.00.9.3 DolphinDB GUI 版本1.30.21.4 2.00.9.3 版本 Server 自带 ODBC 插件位于 Server 的 HomeDir/plugins 目录可直接加载使用。如果 HomeDir/plugins 目录下不存在 ODBC 文件夹则通过如下链接下载 DolphinDBPlugin 分支release200.9 请注意DolphinDB ODBC 插件版本号必须与 Server 版本号一致否则可能出现报错。例如DolphinDB Server 版本号为 2.00.9.X则必须使用 release200.9 分支的 ODBC 插件。 如果想自行编译请参考 ODBC/README_CN.md 文章中的第2章。 建库建表 Oracle 建表语句如下 create table ticksh(SecurityID varchar2(20) ,TradeTime TIMESTAMP,TradePrice FLOAT,TradeQty NUMBER(38),TradeAmount NUMBER(38,4),BuyNo NUMBER(38),SellNo NUMBER(38),TradeIndex NUMBER(38),ChannelNo NUMBER(38),TradeBSFlag VARCHAR2(10),BizIndex INTEGER ); 对于实际的数据需要综合考虑被迁移数据的字段、类型、数据量在 DolphinDB 是否需要分区分区方案使用 OLAP 还是 TSDB 引擎等情况去设计建库建表方案。一些数据存储库表设计实践可以参考 DolphinDB 数据库分区教程。 本例建库建表文件 createTable.dos 内容如下: def createTick(dbName, tbName){if(existsDatabase(dbName)){dropDatabase(dbName)}db1 database(, VALUE, 2020.01.01..2021.01.01)db2 database(, HASH, [SYMBOL, 10])db database(dbName, COMPO, [db1, db2], , TSDB)db database(dbName)name SecurityIDTradeTimeTradePriceTradeQtyTradeAmountBuyNoSellNoChannelNoTradeIndexTradeBSFlagBizIndextype SYMBOLTIMESTAMPDOUBLEINTDOUBLEINTINTINTINTSYMBOLINTschemaTable table(1:0, name, type)db.createPartitionedTable(tableschemaTable, tableNametbName, partitionColumnsTradeTimeSecurityID, compressMethods{TradeTime:delta}, sortColumnsSecurityIDTradeTime, keepDuplicatesALL) }dbNamedfs://TSDB_tick tbNametick createTick(dbName, tbName) 从 Oracle 迁移到 DolphinDB 的数据字段映射关系如下表 Oracle 字段含义Oracle 字段Oracle 数据类型DolphinDB 字段含义DolphinDB 字段DolphinDB 数据类型证券代码SecurityIDVARCHAR2(20)证券代码SecurityIDSYMBOL交易时间TradeTimeTIMESTAMP交易时间TradeTimeTIMESTAMP交易价格TradePriceFLOAT交易价格TradePriceDOUBLE交易数量TradeQtyNUMBER(38)交易数量TradeQtyINT交易金额TradeAmountNUMBER(38,4)交易金额TradeAmountDOUBLE买方委托索引BuyNoNUMBER(38)买方委托索引BuyNoINT卖方委托索引SellNoNUMBER(38)卖方委托索引SellNoINT成交编号TradeIndexNUMBER(38)成交编号TradeIndexINT频道代码ChannelNoNUMBER(38)频道代码ChannelNoINT成交方向TradeBSFlagVARCHAR2(10)成交方向TradeBSFlagSYMBOL业务序列号BizIndexINTEGER业务序列号BizIndexINT 通过 ODBC 迁移 安装 ODBC 驱动 本例中部署 DolphinDB 的服务器操作系统为 Centos。 1. 在安装 Oracle 的客户端前需先安装 unixODBC 库使用以下命令安装 Centos 系统 # 安装 unixODBC 库 yum install unixODBC unixODBC-devel 如果是 Ubuntu 系统使用以下命令安装 # 安装 unixODBC 库 apt-get install unixodbc unixodbc-dev 2. 下载 Oracle 的 ODBC 驱动并安装 根据 Oracle 官方的要求安装 Instant Client ODBC 前需首先安装 Oracle Instant Client Basic 或 Basic Light 软件包根据官方提供的建议确定需要的安装内容。Oracle 官方安装说明Oracle Instant Client ODBC 安装说明 。 确定好需要的安装内容后可在官方提供的下载链接中 Oracle Instant Client Downloads 根据当前的操作系统和处理器进入到对应的下载链接比如本文使用的是 Linux 操作系统x86-64 的指令。进入到下载链接 Instant Client for Linux x86-64 (64-bit) 。然后根据 Oracle 的版本选择对应的 Client 版本并进行下载。 注意目前官网上没有给出详细的客户端版本和 Oracle 数据库版本的对应关系从网上查到的资料来看如果读者的 Oracle 版本是11.2.xx 版本及以上可以下载使用最新的客户端版本。版本的最终建议请以官方提供的信息为准。 可以通过以下方式直接在 Linux 系统中下载对应的安装包 wget https://download.oracle.com/otn_software/linux/instantclient/217000/instantclient-basic-linux.x64-21.7.0.0.0dbru.zip wget https://download.oracle.com/otn_software/linux/instantclient/217000/instantclient-odbc-linux.x64-21.7.0.0.0dbru.zip 安装 Oracle 的 ODBC 客户端 //安装解压 mkdir /usr/local/oracle //存储 oracle-client and oracle-odbc mkdir /etc/oracle //存储 tnsnames.ora unzip instantclient-basic-linux.x64-21.7.0.0.0dbru.zip -d /usr/local/oracle/ unzip instantclient-odbc-linux.x64-21.7.0.0.0dbru.zip -d /usr/local/oracle/ 3. 配置 ODBC 配置文件 1odbcinst.ini 文件用于设置 ODBC 的某个 Driver 要用到的 ODBC 驱动库的文件路径。 需要在 /etc/odbcinst.ini 中增加以下内容如果配置文件不存在需手工创建 : [ORAC21c] Description Oracle ODBC driver for Oracle 21c Driver /usr/local/oracle/instantclient_21_7/libsqora.so.21.1 2/etc/odbc.ini 文件用于设置 ODBC 的某个 Dsn 所用到的 Driver 、账号信息、远程数据库地址以及所要使用的数据库等配置更多配置项可参考 ODBC 连接字符串配置。其中的 Driver 为 /etc/odbcinst.ini 文件中配置的第一行方括号中的内容。添加内容如下如果配置文件不存在需手工创建 [orac] Description odbc for oracle Driver ORAC21c UserID system Password dolphindb123 ServerName ORAC21 Database test 3Oracle 的 ODBC 驱动需要额外在 /etc/oracle/tnsnames.ora 文件中添加 Oracle 数据库的 IP、PORT 以及 SID 信息。其中 ORAC 配置项名为 /etc/odbc.ini 文件中配置的 ServerName。 在 etc/oracle/tnsnames.ora 添加如果配置文件不存在需手工创建 ORAC (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST oracle ip)(PORT 1521)))(CONNECT_DATA (SIDora21c)) ) 注意理论上 tnsnames.ora 的配置内容可以直接放到 odbc.ini 配置文件中不影响 ODBC 连接 Oracle 数据库但是根据实践来看Oracle 的 ODBC 某些接口仍然会使用到 tnsnames.ora 配置文件所以该文件必须配置。 4. 测试 ODBC 连接 配置环境变量 vi ~/.bashrcexport LD_LIBRARY_PATH/usr/local/oracle/instantclient_21_7:$LD_LIBRARY_PATH export TNS_ADMIN/etc/oracle 使配置生效 source ~/.bashrc 测试连接及预期结果如下 isql -v orac/**********output********/ --------------------------------------- | Connected! | | | | sql-statement | | help [tablename] | | quit | | | --------------------------------------- SQL 也可以在 DolphinDB 安装包的配置文件中增加环境变量配置这样每次启动 DolphinDB 即可增加环境配置。如果是单节点模式可以在 startSingle.sh 文件中添加如下环境变量如果是集群模式需要在 startAgent.sh 文件中添加内容如下 export LD_LIBRARY_PATH/usr/local/oracle/instantclient_21_7:$LD_LIBRARY_PATH export TNS_ADMIN/etc/oracle export NLS_LANGAMERICAN_AMERICA.AL32UTF8 5. 可能缺少的文件 安装 Oracle Instant Client 时如果是使用离线安装的可能会提示缺少 libsqora 、libodbcinst 、libnsl 等这里提供相关的安装命令也可以从网上下载到需要的 lib 并手工传到服务器上命令如下 yum install libaio yum install libnsl # 有些是缺少链接而不是缺少文件 ln -s libodbcinst.so.2.0.0 libodbcinst.so.1 其他常见问题可参考 ODBC_plugin_user_guide.md 文章中的第五章注意事项和常见问题。 同步数据 1. 运行以下命令加载 ODBC 插件 ServerPath 请自行修改 loadPlugin(ServerPath/plugins/odbc/PluginODBC.txt) 2. 运行以下命令建立与 Oracle 的连接 Dsn 的名称请自行修改 conn odbc::connect(Dsnorac, Oracle) 3. 运行以下命令开始同步数据 def transForm(mutable msg){msg.replaceColumn!(TradeQty, int(msg[TradeQty]))msg.replaceColumn!(BuyNo, int(msg[BuyNo]))msg.replaceColumn!(SellNo, int(msg[SellNo]))msg.replaceColumn!(ChannelNo, int(msg[ChannelNo]))msg.replaceColumn!(TradeIndex, int(msg[TradeIndex]))msg.replaceColumn!(BizIndex, int(msg[BizIndex]))return msg }def syncData(conn, dbName, tbName, dt){sql select SecurityID, TradeTime, TradePrice, TradeQty, TradeAmount, BuyNo, SellNo, ChannelNo, TradeIndex, TradeBSFlag, BizIndex from tickshif(!isNull(dt)) {sql sql WHERE trunc(TradeTime) TO_DATE(dt, yyyy.MM.dd)}odbc::query(conn,sql, loadTable(dbName,tbName), 100000, transForm) }dbNamedfs://TSDB_tick tbNametick syncData(conn, dbName, tbName, NULL) 数据共 27211975 条同步数据耗时约210秒。 4. 后台多任务同步数据 本教程中 DolphinDB 的数据库按天分区如果需要同步多天的数据可以提交多个任务到后台 for(dt in 2021.01.04..2021.01.05){submitJob(syncOracTick, syncOracTick, syncData, conn, dbName, tbName, dt) } // 查看后台任务 select * from getRecentJobs() where jobDesc syncOracTick 通过 DataX 迁移 部署 DataX 从 DataX 下载地址 下载 DataX 压缩包后解压至自定义目录。 部署 DataX-DolphinDBWriter 插件 将 DataX-DolphinDBWriter 中源码的 ./dist/dolphindbwriter 目录下所有内容拷贝到 DataX/plugin/writer 目录下即可使用。 执行 DataX 任务 1. 配置 json 文件 配置文件 oracleddb.json 的具体内容如下并将 json 文件置于自定义目录下本教程中方放置于 datax-writer-master/ddb_script/ 目录下。 {job: {content: [{writer: {parameter: {dbPath: dfs://TSDB_tick,userId: admin,tableName: tick,host: 127.0.0.1,pwd: 123456,table: [{type: DT_SYMBOL,name: SecurityID},{type: DT_TIMESTAMP,name: TradeTime},{type: DT_DOUBLE,name: TradePrice},{type: DT_INT,name: TradeQty},{type: DT_DOUBLE,name: TradeAmount},{type: DT_INT,name: BuyNo},{type: DT_INT,name: SellNo},{type: DT_INT,name: TradeIndex},{type: DT_INT,name: ChannelNo},{type: DT_SYMBOL,name: TradeBSFlag},{type: DT_INT,name: BizIndex}],port: 8858},name: dolphindbwriter},reader: {parameter: {username: system,column: [SecurityID, TradeTime, TradePrice, TradeQty, TradeAmount, BuyNo, SellNo, ChannelNo, TradeIndex, TradeBSFlag, BizIndex],connection: [{table: [ticksh],jdbcUrl: [jdbc:oracle:thin:127.0.0.1:1521:ora21c]}],password: dolphindb123,where: },name: oraclereader}}],setting: {speed: {channel: 1}}} } 2. Linux 终端中执行以下命令以执行 DataX 任务 cd ./dataX/bin/ python datax.py --jvm-Xmx8g ../../datax-writer-master/ddb_script/oracleddb.json 部分 DataX 版本需要使用以下方式配置 jvm 内存 python datax.py --jvm-Xms1g -Xmx8g ../../datax-writer-master/ddb_script/oracleddb.json 3. 查看 DataX 同步结果 任务启动时刻 : 2023-06-06 15:41:34 任务结束时刻 : 2023-06-06 15:45:49 任务总计耗时 : 254s 任务平均流量 : 6.44MB/s 记录写入速度 : 107133rec/s 读出记录总数 : 27211975 读写失败总数 : 0 基准性能 分别使用 ODBC 插件和 DataX 驱动进行数据迁移 数据量 2721 万条迁移耗时对比如下表所示 ODBC插件DataX210s254s 综上ODBC 插件与 DataX 均能实现将 Oracle 中数据迁移到 DolphinDB 中但是各有优缺点 ODBC 使用简单适合灵活导入数据但是运维管理不便。DataX 需要编写复杂的导入配置但是其扩展灵活方便监控社区支持丰富。 用户可以根据自己数据量的大小以及工程化的便捷性选择合适的导入方式。 附录 DolphinDB 写插件配置项 配置项是否必须数据类型默认值描述host是string无Server Hostport是int无Server PortuserId是string无DolphinDB 用户名 导入分布式库时必须要有权限的用户才能操作否则会返回pwd是string无DolphinDB 用户密码dbPath是string无需要写入的目标分布式库名称比如 dfs://MYDB。tableName是string无目标数据表名称batchSize否int10000000DataX 每次写入 DolphinDB 的批次记录数table是写入表的字段集合具体参考后续 table 项配置详解saveFunctionName否string无自定义数据处理函数。若未指定此配置插件在接收到 reader 的数据后会将数据提交到 DolphinDB 并通过 tableInsert 函数写入指定库表如果定义此参数则会用指定函数替换 tableInsert 函数。saveFunctionDef否string无数据入库自定义函数。此函数指用 DolphinDB 脚本来实现的数据入库过程。 此函数必须接受三个参数dfsPath (分布式库路径), tbName (数据表名), data (从 DataX 导入的数据, table 格式) table 配置详解 table 用于配置写入表的字段集合。内部结构为 {name: columnName, type: DT_STRING, isKeyField:true} 请注意此处列定义的顺序需要与原表提取的列顺序完全一致。 name 字段名称。isKeyField是否唯一键值可以允许组合唯一键。本属性用于数据更新场景用于确认更新数据的主键若无更新数据的场景无需设置。type枚举值以及对应 DolphinDB 数据类型如下: DolphinDB 类型配置值DOUBLEDT_DOUBLEFLOATDT_FLOATBOOLDT_BOOLDATEDT_DATEMONTHDT_MONTHDATETIMEDT_DATETIMETIMEDT_TIMESECONDDT_SECONDTIMESTAMPDT_TIMESTAMPNANOTIMEDT_NANOTIMENANOTIMETAMPDT_NANOTIMETAMPINTDT_INTLONGDT_LONGUUIDDT_UUIDSHORTDT_SHORTSTRINGDT_STRINGSYMBOLDT_SYMBOL 完整代码及测试数据 DataX: oracleddb.json DolphinDB: createTable.dos迁移.txt 测试数据 tick.csv 1万行
http://www.zqtcl.cn/news/515170/

相关文章:

  • 北?? 网站建设旅游手机网站开发
  • 乐清做网站的网站备案容易通过吗
  • 网站qq登录 开发一个小型网站开发成本
  • 湖北网络建设公司网站js跳转到别的网站
  • 郑州网站app开发的汽车网站 源码
  • 河南网站建设企业做网站多少钱西宁君博示范
  • 沈阳有做网站的吗青浦手机网站制作
  • 腾讯云免费建站建立一个网站英语
  • 沙漠风网站建设怎么样官方网站建设银行2010年存款利息
  • 360报危险网站微信代码小程序
  • 网站维护报价单国外 做励志视频的网站
  • 用源码做自己的网站公司网站建设哪家公司好
  • 网站运营做seohtml前端网站开发PPT
  • 上海网站定制设计图wordpress网站在线安装
  • 互动网站的核心技术wordpress不用插件
  • 厦门市建设工程交易中心网站怎么自己做游戏软件的app
  • 网站论文参考文献人力资源公司名称大全简单大气
  • 射阳做企业网站哪家好wordpress 进销存
  • 青海个人旅游网站建设wordpress用户名密码加密方式
  • 安徽平台网站建设找哪家wordpress首页加登录
  • 雅安市住房和城乡建设局网站湖南全程电子化服务平台官网
  • dw做的上传网站打不开网页制作培训价格
  • 工程网站怎么做广州做网站平台
  • 成都网站建设 全美深圳定制网站建设
  • 邢台网站建设与制作陕西高速公路建设集团网站
  • 太原 招聘 网站建设 技术经理关于 建设 二级网站
  • 如何做网站店铺的模板著名的响应式网站有哪些
  • 相城区建设网站做网站 设计师很
  • python网站开发好吗广州软件外包
  • 山东能源集团 网站建设对网站建设功能的情况说明