導航:首頁 > 數據行情 > leveldb股票資料庫

leveldb股票資料庫

發布時間:2022-11-25 05:00:48

A. 怎樣運行.prototxt文件

1 cifar10資料庫 60000張32*32 彩色圖片 共10類 50000張訓練 10000張測試 下載cifar10資料庫 這是binary格式的,所以我們要把它轉換成leveldb格式。 2 在../caffe-windows/examples/cifar10文件夾中有一個 convert_cifar_data.cpp 將他include到MainCaller.cpp中。如下: 編譯....我是一次就通過了 ,在bin文件夾里出現convert_cifar_data.exe。然後 就可以進行格式轉換。binary→leveldb 可以在bin文件夾下新建一個input文件夾。將cifar10.binary文件放在input文件夾中,這樣轉換時就不用寫路徑了。 cmd進入bin文件夾 執行後,在output文件夾下有cifar_train_leveldb和cifar_test_leveldb兩個文件夾。裡面是轉化好的leveldb格式數據。 當然,也可以寫一個bat文件處理,方便以後再次使用。 3 下面我們要求數據圖像的均值 編譯../../tools/comput_image_mean.cpp 編譯成功後。接下來求mean cmd進入bin。 執行後,在bin文件夾下出現一個mean.binaryproto文件,這就是所需的均值文件。 4 訓練cifar網路 在.../examples/cifar10文件夾里已經有網路的配置文件,我們只需要將cifar_train_leveldb和cifar_test_leveldb兩個文件夾還有mean.binaryproto文件拷到cifar0文件夾下。 修改cifar10_quick_train.prototxt中的source: "cifar-train-leveldb" mean_file: "mean.binaryproto" 和cifar10_quick_test.prototxt中的source: "cifar-test-leveldb" mean_file: "mean.binaryproto"就可以了, 後面再訓練就類似於MNIST的訓練。寫一個train_quick.bat,內容如下: [plain] view plain ..\\..\\bin\\MainCaller.exe ..\\..\\bin\\train_net.exe SET GLOG_logtostderr=1 "../../bin/train_net.exe" cifar10_quick_solver.prototxt pause 先編譯一遍 train_net.cpp 運行train_quick.bat

B. 2019數據架構選型必讀:1月資料庫產品技術解析

本期目錄

DB-Engines資料庫排行榜

新聞快訊

一、RDBMS家族

二、NoSQL家族

三、NewSQL家族

四、時間序列

五、大數據生態圈

六、國產資料庫概覽

七、雲資料庫

八、推出dbaplus Newsletter的想法

九、感謝名單

為方便閱讀、重點呈現,本期Newsletter(2019年1月)將對各個板塊的內容進行精簡。需要閱讀全文的同學可點擊文末 【閱讀原文】 或登錄https://pan..com/s/13BgipbaHeMfvm0YPtiYviA

進行下載。

DB-Engines資料庫排行榜

以下取自2019年1月的數據,具體信息可以參考http://db-engines.com/en/ranking/,數據僅供參考。

DB-Engines排名的數據依據5個不同的因素:

新聞快訊

1、2018年9月24日,微軟公布了SQL Server2019預覽版,SQL Server 2019將結合Spark創建統一數據平台。

2、2018年10月5日,ElasticSearch在美國紐約證券交易所上市。

3、亞馬遜放棄甲骨文資料庫軟體,導致最大倉庫之一在黃金時段宕機。受此消息影響,亞馬遜盤前股價小幅跳水,跌超2%。

4、2018年10月31日,Percona發布了Percona Server 8.0 RC版本,發布對MongoDB 4.0的支持,發布對XtraBackup測試第二個版本。

5、2018年10月31日,Gartner陸續發布了2018年的資料庫系列報告,包括《資料庫魔力象限》、《資料庫核心能力》以及《資料庫推薦報告》。

今年的總上榜資料庫產品達到了5家,分別來自:阿里雲,華為,巨杉資料庫,騰訊雲,星環 科技 。其中阿里雲和巨杉資料庫已經連續兩年入選。

6、2018年11月初,Neo4j宣布完成E輪8000萬美元融資。11月15日,Neo4j宣布企業版徹底閉源:

7、2019年1月8日,阿里巴巴以1.033億美元(9000萬歐元)的價格收購了Apache Flink商業公司DataArtisans。

8、2019年1月11日早間消息,亞馬遜宣布推出雲資料庫軟體,亞馬遜和MongoDB將會直接競爭。

RDBMS家族

Oracle 發布18.3版本

2018年7月,Oracle Database 18.3通用版開始提供下載。我們可以將Oracle Database 18c視為採用之前發布模式的Oracle Database 12c第2版的第一個補丁集。未來,客戶將不再需要等待多年才能用上最新版Oracle資料庫,而是每年都可以期待新資料庫特性和增強。Database 19c將於2019年Q1率先在Oracle cloud上發布雲版本。

Oracle Database 18c及19c部分關鍵功能:

1、性能

2、多租戶,大量功能增強及改進,大幅節省成本和提高敏捷性

3、高可用

4、數據倉庫和大數據

MySQL發布8.0.13版本

1、賬戶管理

經過配置,修改密碼時,必須帶上原密碼。在之前的版本,用戶登錄之後,就可以修改自己的密碼。這種方式存在一定安全風險。比如用戶登錄上資料庫後,中途離開一段時間,那麼非法用戶可能會修改密碼。由參數password_require_current控制。

2、配置

Innodb表必須有主鍵。在用戶沒有指定主鍵時,系統會生成一個默認的主鍵。但是在主從復制的場景下,默認的主鍵,會對叢庫應用速度帶來致命的影響。如果設置sql_require_primary_key,那麼資料庫會強制用戶在創建表、修改表時,加上主鍵。

3、欄位默認值

BLOB、TEXT、GEOMETRY和JSON欄位可以指定默認值了。

4、優化器

1)Skip Scan

非前綴索引也可以用了。

之前的版本,任何沒有帶上f1欄位的查詢,都沒法使用索引。在新的版本中,它可以忽略前面的欄位,讓這個查詢使用到索引。其實現原理就是把(f1 = 1 AND f2 > 40) 和(f1 = 2 AND f2 > 40)的查詢結果合並。

2)函數索引

之前版本只能基於某個列或者多個列加索引,但是不允許在上面做計算,如今這個限制消除了。

5、SQL語法

GROUP BY ASC和GROUP BY DESC語法已經被廢棄,要想達到類似的效果,請使用GROUP BY ORDER BY ASC和GROUP BY ORDER BY DESC。

6、功能變化

1)設置用戶變數,請使用SET語句

如下類型語句將要被廢棄SELECT @var, @var:=@var+1。

2)新增innodb_fsync_threshold

該變數是控制文件刷新到磁碟的速率,防止磁碟在短時間內飽和。

3)新增會話級臨時表空間

在以往的版本中,當執行SQL時,產生的臨時表都在全局表空間ibtmp1中,及時執行結束,臨時表被釋放,空間不會被回收。新版本中,會為session從臨時表空間池中分配一個臨時表空間,當連接斷開時,臨時表空間的磁碟空間被回收。

4)在線切換Group Replication的狀態

5)新增了group_replication_member_expel_timeout

之前,如果某個節點被懷疑有問題,在5秒檢測期結束之後,那麼就直接被驅逐出這個集群。即使該節點恢復正常時,也不會再被加入集群。那麼,瞬時的故障,會把某些節點驅逐出集群。

group_replication_member_expel_timeout讓管理員能更好的依據自身的場景,做出最合適的配置(建議配置時間小於一個小時)。

MariaDB 10.3版本功能展示

1、MariaDB 10.3支持update多表ORDER BY and LIMIT

1)update連表更新,limit語句

update t1 join t2 on t1.id=t2.id set t1.name='hechunyang' limit 3;

MySQL 8.0直接報錯

MariaDB 10.3更新成功

2)update連表更新,ORDER BY and LIMIT語句

update t1 join t2 on t1.id=t2.id set t1.name='HEchunyang' order by t1.id DESC limit 3;

MySQL 8.0直接報錯

MariaDB 10.3更新成功

參考:

https://jira.mariadb.org/browse/MDEV-13911

2、MariaDB10.3增補AliSQL補丁——安全執行Online DDL

Online DDL從名字上看很容易誤導新手,以為不論什麼情況,修改表結構都不會鎖表,理想很豐滿,現實很骨感,注意這個坑!

有以下兩種情況執行DDL操作會鎖表的,Waiting for table metadata lock(元數據表鎖):

針對第二種情況,MariaDB10.3增補AliSQL補丁-DDL FAST FAIL,讓其DDL操作快速失敗。

例:

如果線上有某個慢SQL對該表進行操作,可以使用WAIT n(以秒為單位設置等待)或NOWAIT在語句中顯式設置鎖等待超時,在這種情況下,如果無法獲取鎖,語句將立即失敗。 WAIT 0相當於NOWAIT。

參考:

https://jira.mariadb.org/browse/MDEV-11388

3、MariaDB Window Functions窗口函數分組取TOP N記錄

窗口函數在MariaDB10.2版本里實現,其簡化了復雜SQL的撰寫,提高了可讀性。

參考:

https://mariadb.com/kb/en/library/window-functions-overview/

Percona Server發布8.0 GA版本

2018年12月21日,Percona發布了Percona Server 8.0 GA版本。

在支持MySQL8.0社區的基礎版上,Percona Server for MySQL 8.0版本中帶來了許多新功能:

1、安全性和合規性

2、性能和可擴展性

3、可觀察性和可用性

Percona Server for MySQL 8.0中將要被廢用功能:

Percona Server for MySQL 8.0中刪除的功能:

RocksDB發布V5.17.2版本

2018年10月24日,RocksDB發布V5.17.2版本。

RocksDB是Facebook在LevelDB基礎上用C++寫的高效內嵌式K/V存儲引擎。相比LevelDB,RocksDB提供了Column-Family,TTL,Transaction,Merge等方面的支持。目前MyRocks,TiKV等底層的存儲都是基於RocksDB來構建。

PostgreSQL發布11版本

2018年10月18日,PostgreSQL 11發布。

1、PostgreSQL 11的重大增強

2、PostgreSQL 插件動態

1)分布式插件citus發布 8.1

citus是PostgreSQL的一款sharding插件,目前國內蘇寧、鐵總、探探有較大量使用案例。

https://github.com/citusdata/citus

2)地理信息插件postgis發布2.5.1

PostGIS是專業的時空資料庫插件,在測繪、航天、氣象、地震、國土資源、地圖等時空專業領域應用廣泛。同時在互聯網行業也得到了對GIS有性能、功能深度要求的客戶青睞,比如共享出行、外賣等客戶。

http://postgis.net/

3)時序插件timescale發布1.1.1

timescale是PostgreSQL的一款時序資料庫插件,在IoT行業中有非常好的應用。github star數目前有5000多,是一個非常火爆的插件。

https://github.com/timescale/timescaledb

4)流計算插件 pipelinedb 正式插件化

Pipelinedb是PostgreSQL的一款流計算插件,使用這個創建可以對高速寫入的數據進行實時根據定義的聚合規則進行聚合(支持概率計算),實時根據定義的規則觸發事件(支持事件處理函數的自定義)。可用於IoT,監控,FEED實時計算等場景。

https://github.com/pipelinedb/pipelinedb

3、PostgreSQL衍生開源產品動態

1)agensgraph發布 2.0.0版本

agensgraph是兼容PostgreSQL、opencypher的專業圖資料庫,適合圖式關系的管理。

https://github.com/bitnine-oss/agensgraph

2)gpdb發布5.15

gpdb是兼容PostgreSQL的mpp資料庫,適合OLAP場景。近兩年,gpdb一直在追趕PostgreSQL的社區版本,預計很快會追上10的PostgreSQL,在TP方面的性能也會得到顯著提升。

https://github.com/greenplum-db/gpdb

3)antdb發布3.2

antdb是以Postgres-XC為基礎開發的一款PostgreSQL sharding資料庫,亞信主導開發,開源,目前主要服務於亞信自有客戶。

https://github.com/ADBSQL/AntDB

4)遷移工具MTK發布52版本

MTK是EDB提供的可以將Oracle、PostgreSQL、MySQL、MSSQL、Sybase資料庫遷移到PostgreSQL, PPAS的產品,遷移速度可以達到100萬行/s以上。

https://github.com/digoal/blog/blob/master/201812/20181226_01.md

DB2發布 11.1.4.4版本

DB2最新發布Mod Pack 4 and Fix Pack 4,包含以下幾方面的改動及增強:

1、性能

2、高可用

3、管理視圖

4、應用開發方面

5、聯邦功能

6、pureScale

NoSQL家族

Redis發布5.0.3版本

MongoDB升級更新MongoDB Mobile和MongoDB Stitch

2018年11月21日,MongoDB升級更新MongoDB Mobile和MongoDB Stitch,助力開發人員提升工作效率。

MongoDB 公司日前發布了多項新產品功能,旨在更好地幫助開發人員在世界各地管理數據。通過利用存儲在移動設備和後台資料庫的數據之間的實時、自動的同步特性,MongoDB Mobile通用版本助力開發人員構建更快捷、反應更迅速的應用程序。此前,這只能通過在移動應用內部安裝一個可供選擇或限定功能的資料庫來實現。

MongoDB Mobile在為客戶提供隨處運行的自由度方面更進了一步。用戶在iOS和安卓終端設備上可擁有MongoDB所有功能,將網路邊界擴展到其物聯網資產范疇。應用系統還可以使用MongoDB Stitch的軟體開發包訪問移動客戶端或後台數據,幫助開發人員通過他們希望的任意方式查詢移動終端數據和物聯網數據,包括本地讀寫、本地JSON存儲、索引和聚合。通過Stitch移動同步功能(現可提供beta版),用戶可以自動對保存在本地的數據以及後台資料庫的數據進行同步。

本期新秀:Cassandra發布3.11.3版本

2018年8月11日,Cassandra發布正式版3.11.3。

Apache Cassandra是一款開源分布式NoSQL資料庫系統,使用了基於Google BigTable的數據模型,與面向行(row)的傳統關系型資料庫或鍵值存儲key-value資料庫不同,Cassandra使用的是寬列存儲模型(Wide Column Stores)。與BigTable和其模仿者HBase不同,數據並不存儲在分布式文件系統如GFS或HDFS中,而是直接存於本地。

Cassandra的系統架構與Amazon DynamoDB類似,是基於一致性哈希的完全P2P架構,每行數據通過哈希來決定應該存在哪個或哪些節點中。集群沒有master的概念,所有節點都是同樣的角色,徹底避免了整個系統的單點問題導致的不穩定性,集群間的狀態同步通過Gossip協議來進行P2P的通信。

3.11.3版本的一些bug fix和改進:

NewSQL家族

TiDB 發布2.1.2版本

2018 年 12 月 22 日,TiDB 發布 2.1.2 版,TiDB-Ansible 相應發布 2.1.2 版本。該版本在 2.1.1 版的基礎上,對系統兼容性、穩定性做出了改進。

TiDB 是一款定位於在線事務處理/在線分析處理( HTAP: Hybrid Transactional/Analytical Processing)的融合型資料庫產品。除了底層的 RocksDB 存儲引擎之外,分布式SQL層、分布式KV存儲引擎(TiKV)完全自主設計和研發。

TiDB 完全開源,兼容MySQL協議和語法,可以簡單理解為一個可以無限水平擴展的MySQL,並且提供分布式事務、跨節點 JOIN、吞吐和存儲容量水平擴展、故障自恢復、高可用等優異的特性;對業務沒有任何侵入性,簡化開發,利於維護和平滑遷移。

TiDB:

PD:

TiKV:

Tools:

1)TiDB-Lightning

2)TiDB-Binlog

EsgynDB發布R2.5版本

2018年12月22日,EsgynDB R2.5版本正式發布。

作為企業級產品,EsgynDB 2.5向前邁進了一大步,它擁有以下功能和改進:

CockroachDB發布2.1版本

2018年10月30日,CockroachDB正式發布2.1版本,其新增特性如下:

新增企業級特性:

新增SQL特性:

新增內核特性:

Admin UI增強:

時間序列

本期新秀:TimescaleDB發布1.0版本

10月底,TimescaleDB 1.0宣布正式推出,官方表示該版本已可用於生產環境,支持完整SQL和擴展。

TimescaleDB是基於PostgreSQL資料庫開發的一款時序資料庫,以插件化的形式打包提供,隨著PostgreSQL的版本升級而升級,不會因為另立分支帶來麻煩。

TimescaleDB架構:

數據自動按時間和空間分片(chunk)

更新亮點:

https://github.com/timescale/timescaledb/releases/tag/1.0.0

大數據生態圈

Hadoop發布2.9.2版本

2018年11月中旬,Hadoop在2.9分支上發布了新的2.9.2版本,該版本進行了204個大大小小的變更,主要變更如下:

Greenplum 發布5.15版本

Greenplum最新的5.15版本中發布了流式數據載入工具。

該版本中的Greenplum Streem Server組件已經集成了Kafka流式載入功能,並通過了Confluent官方的集成認證,其支持的主要功能如下:

國產資料庫概覽

K-DB發布資料庫一體機版

2018年11月7日,K-DB發布了資料庫一體機版。該版本更新情況如下:

OceanBase遷移服務發布1.0版本

1月4日,OceanBase 正式發布OMS遷移服務1.0版本。

以下內容包含 OceanBase 遷移服務的重要特性和功能:

SequoiaDB發布3.0.1新版本

1、架構

1)完整計算存儲分離架構,兼容MySQL協議、語法

計算存儲分離體系以松耦合的方式將計算與存儲層分別部署,通過標准介面或插件對各個模塊和組件進行無縫替換,在計算層與存儲層均可實現自由的彈性伸縮。

SequoiaDB巨杉資料庫「計算-存儲分離」架構詳細示意

用戶可以根據自身業務特徵選擇面向交易的SQL解析器(例如MySQL或PGSQL)或面向統計分析的執行引擎(例如SparkSQL)。眾所周知,使用不同的SQL優化與執行方式,資料庫的訪問性能可能會存在上千上萬倍的差距。計算存儲分離的核心思想便是在數據存儲層面進行一體化存儲,在計算層面則利用每種執行引擎的特點針對不同業務場景進行選擇和優化,用戶可以在存儲層進行邏輯與物理的隔離,將面向高頻交易的前端業務與面向高吞吐量的統計分析使用不同的硬體進行存儲,確保在多類型數據訪問時互不幹擾,以真正達到生產環境可用的多租戶與HTAP能力。

2、其他更新信息

1)介面變更:

2)主要特性:

雲資料庫

本期新秀:騰訊發布資料庫CynosDB,開啟公測

1、News

1)騰訊雲資料庫MySQL2018年重大更新:

2)騰訊雲資料庫MongoDB2018年重大更新:

3)騰訊雲資料庫Redis/CKV+2018年重大更新:

4)騰訊雲資料庫CTSDB2018年重大更新:

2、Redis 4.0集群版商業化上線

2018年10月,騰訊雲資料庫Redis 4.0集群版完成邀測、公測、商業化三個迭代,在廣州、上海、北京正式全量商業化上線。

產品特性:

使用場景:

官網文檔:

https://cloud.tencent.com/document/proct/239/18336

3、騰訊自研資料庫CynosDB發布,開啟公測

2018年11月22日,騰訊雲召開新一代自研資料庫CynosDB發布會,業界第一款全面兼容市面上兩大最主流的開源資料庫MySQL和PostgreSQL的高性能企業級分布式雲資料庫。

本期新秀:京東雲DRDS發布1.0版本

12月24日,京東雲分布式關系型資料庫DRDS正式發布1.0版本。

DRDS是京東雲精心自研的資料庫中間件產品,獲得了2018年 」可信雲技術創新獎」。DRDS可實現海量數據下的自動分庫分表,具有高性能,分布式,彈性升級,兼容MySQL等優點,適用於高並發、大規模數據的在線交易, 歷史 數據查詢,自動數據分片等業務場景,歷經多次618,雙十一的考驗,已經在京東集團內大規模使用。

京東雲DRDS產品有以下主要特性

1)自動分庫分表

通過簡單的定義即可自動實現分庫分表,將數據實際存放在多個MySQL實例的資料庫中,但呈現給應用程序的依舊是一張表,對業務透明,應用程序幾乎無需改動,實現了對資料庫存儲和處理能力的水平擴展。

2)分布式架構

基於分布式架構的集群方案,多個對等節點同時對外提供服務,不但可有效規避服務的單點故障,而且更加容易擴展。

3)超強性能

具有極高的處理能力,雙節點即可支持數萬QPS,滿足用戶超大規模處理能力的需求。

4)兼容MySQL

兼容絕大部分MySQL語法,包括MySQL語法、數據類型、索引、常用函數、排序、關聯等DDL,DML語句,使用成本低。

參考鏈接:

https://www.jdcloud.com/cn/procts/drds

RadonDB發布1.0.3版本

2018年12月26日,MyNewSQL領域的RadonDB雲資料庫發布1.0.3版本。

推出dbaplus Newsletter的想法

dbaplus Newsletter旨在向廣大技術愛好者提供資料庫行業的最新技術發展趨勢,為社區的技術發展提供一個統一的發聲平台。為此,我們策劃了RDBMS、NoSQL、NewSQL、時間序列、大數據生態圈、國產資料庫、雲資料庫等幾個版塊。

我們不以商業宣傳為目的,不接受任何商業廣告宣傳,嚴格審查信息源的可信度和准確性,力爭為大家提供一個純凈的技術學習環境,歡迎大家監督指正。

至於Newsletter發布的周期,目前計劃是每三個月左右會做一次跟進, 下期計劃時間是2019年4月14日~4月25日, 如果有相關的信息提供請發送至郵箱:[email protected]

感謝名單

最後要感謝那些提供寶貴信息和建議的專家朋友,排名不分先後。

往期回顧:

↓↓別忘了點這里下載 2019年1月 完整版Newsletter 哦~

C. 大數據從技術層面分為那幾層,每一層有什麼功能

大數據技術層面主要分為這幾層
1. 預測分析技術
這也是大數據的主要功能之一。預測分析允許公司通過分析大數據源來發現、評估、優化和部署預測模型,從而提高業務性能或降低風險。同時,大數據的預測分析也與我們的生活息息相關。淘寶會預測你每次購物可能還想買什麼,愛奇藝正在預測你可能想看什麼,百合網和其他約會網站甚至試圖預測你會愛上誰……
2. NoSQL資料庫
NoSQL,Not Only SQL,意思是「不僅僅是SQL」,泛指非關系型資料庫。NoSQL資料庫提供了比關系資料庫更靈活、可伸縮和更便宜的替代方案,打破了傳統資料庫市場一統江山的格局。並且,NoSQL資料庫能夠更好地處理大數據應用的需求。常見的NoSQL資料庫有HBase、Redis、MongoDB、Couchbase、LevelDB等。
3. 搜索和知識發現
支持來自於多種數據源(如文件系統、資料庫、流、api和其他平台和應用程序)中的大型非結構化和結構化數據存儲庫中自助提取信息的工具和技術。如,數據挖掘技術和各種大數據平台。
4. 大數據流計算引擎
能夠過濾、聚合、豐富和分析來自多個完全不同的活動數據源的數據的高吞吐量的框架,可以採用任何數據格式。現今流行的流式計算引擎有Spark Streaming和Flink。
5. 內存數據結構
通過在分布式計算機系統中動態隨機訪問內存(DRAM)、快閃記憶體或SSD上分布數據,提供低延遲的訪問和處理大量數據。
6. 分布式文件存儲
為了保證文件的可靠性和存取性能,數據通常以副本的方式存儲在多個節點上的計算機網路。常見的分布式文件系統有GFS、HDFS、Lustre 、Ceph等。
7. 數據虛擬化
數據虛擬化是一種數據管理方法,它允許應用程序檢索和操作數據,而不需要關心有關數據的技術細節,比如數據在源文件中是何種格式,或者數據存儲的物理位置,並且可以提供單個客戶用戶視圖。
8. 數據集成
用於跨解決方案進行數據編排的工具,如Amazon Elastic MapRece (EMR)、Apache Hive、Apache Pig、Apache Spark、MapRece、Couchbase、Hadoop和MongoDB等。
9. 數據准備
減輕采購、成形、清理和共享各種雜亂數據集的負擔的軟體,以加速數據對分析的有用性。
10. 數據質量
使用分布式數據存儲和資料庫上的並行操作,對大型高速數據集進行數據清理和充實的產品。

D. leveldb和lmdb的區別

Caffe是目前深度學習比較優秀好用的一個開源庫,采樣c++和CUDA實現,具有速度快,模型...Caffe的數據層可以從資料庫(支持leveldb、lmdb、hdf5)、圖片、和內存中讀入。...

E. 怎樣操作leveldb資料庫,實現增刪改查

怎樣操作leveldb資料庫,實現增刪改查
#include <iostream>
#include <string>
#include <assert.h>
#include "leveldb/db.h"

using namespace std;

int main(void)
{

leveldb::DB *db;
leveldb::Options options;
options.create_if_missing = true;

// open
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok());

string key = "name";
string value = "chenqi";

// write
status = db->Put(leveldb::WriteOptions(), key, value);
assert(status.ok());

// read
status = db->Get(leveldb::ReadOptions(), key, &value);
assert(status.ok());

cout<<value<<endl;

// delete
status = db->Delete(leveldb::WriteOptions(), key);
assert(status.ok());

status = db->Get(leveldb::ReadOptions(),key, &value);
if(!status.ok()) {
cerr<<key<<" "<<status.ToString()<<endl;
} else {
cout<<key<<"==="<<value<<endl;
}

// close
delete db;

return 0;
}

F. 如何學習區塊鏈

如果想學習比特幣及區塊鏈方面的知識,還是要系統性地學習。網上這方面討論、資料都很多,但水平參差不齊。建議看一下區塊鏈老師的線上課程。
線上區塊鏈視頻教程是由Steven老師進行直播教學。Steven老師,西交大學學士,北航軟體學院工程碩士。從事IT行業15年,7年編程開發經驗,8年計算機培訓經驗。分別從事過Asp、Asp.net、PHP、Java、Android、HTML5等開發和教學工作。曾出版發行《變身程序猿——Android應用開發》(電子工業出版社),《Steven陪你學Android》、《零基礎學編程》、《解密區塊鏈》系列視頻。
想要學習區塊鏈技術的同學通過三個月線上直播學習,畢業後能夠掌握區塊鏈基本概念、精通智能合約開發與架構設計、掌握代幣開發與ICO發幣、掌握全棧dapp開發。
其區塊鏈技術課程大綱如下:

1.1區塊鏈基本理論 0.5周
1.1.1初識區塊鏈
1.1.2認識區塊鏈家族
1.1.3區塊鏈與比特幣常見問題及基本概念
1.1.4區塊鏈應用場景
1.1.5比特幣錢包BitcoinCore
1.1.6testnet環境實現比特幣交易
1.2編程基礎入門 3.5周
1.2.1計算機軟硬體基礎
1.2.2字元集及字元編碼
1.2.3HTML+CSS(含HTML5+CSS3)
1.2.4ECMAScript + BOM + DOM
1.2.5jQuery
1.2.6node.js
1.2.7Ajax及Express
1.3Go編程語言 6周
1.3.1Go基本語法
1.3.2流程式控制制
1.3.3函數及數據
1.3.4錯誤處理
1.3.5Go面向對象編程
1.3.6Go並發編程
1.3.7Go網路編程
1.3.8Go安全編程
1.3.9Go進階編程(goroutine、channel)
1.3.10資料庫MySQL、LevelDB
1.4區塊鏈1.0——比特幣Bitcoin 1周
1.4.1比特幣原理
1.4.2比特幣系統架構
1.4.3密碼演算法(Go語言實現)
1.4.4共識演算法(Go語言實現)
1.4.5比特幣交易原理及交易腳本
1.4.6比特幣RPC編程(node.js實現)
1.4.7比特幣源碼解析
1.5區塊鏈2.0——以太坊Ethereum 3周
1.5.1以太坊工作原理及基礎架構
1.5.2以太坊基本概念(賬戶、交易、Gas)
1.5.3以太坊錢包Mist及Metamask
1.5.4以太坊交易
1.5.5ERC20標准Token開發部署
1.5.6以太坊開發IDE——remix-ide
1.5.7智能合約與Solidity
1.5.8Solidity部署、備份及調用
1.5.9框架技術:truffle及web3
1.5.10DApp開發實戰
1.5.11Geth
1.6EOS及星雲鏈開發實戰 3周
1.6.1EOS介紹及石墨烯生態系
1.6.2EOS主要特點及發展前景
1.6.3EOS開發智能合約
1.6.4cleos及RPC介面
1.6.5EOS應用開發實戰
1.6.6星雲鏈介紹
1.6.7星雲鏈開發DApp實戰
1.7區塊鏈3.0——超級賬本之Fabric 3周
1.7.1超級賬本項目介紹
1.7.2Fabric部署和使用
1.7.3Fabric配置管理
1.7.4Fabric架構設計
1.7.5Fabric CA應用與配置
1.7.6應用開發實戰
區塊鏈市場已經開始向大眾打開,迅速抓住學習機遇,掌握區塊鏈技術,站在互聯網時代風口,未來發展必定會勢如破竹!

G. 全球四個最大的四個開源庫

開源資料庫MySQLMySQL是一個開放源碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源...開源資料庫MySQLMySQL是一個開放源碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。盤點:開源社區那些免費的資料庫軟體MySQL為多種編程語言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是採用C和C++編寫的,使用了多種編譯器進行測試,所以,MySQL能夠保證源代碼具有很強的可移植性。這樣的一款資料庫,自然能夠支持幾乎所有的操作系統,從Unix、Linux到Windows,具體包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多種操作系統。最重要的是,它是一個可以處理擁有上千萬條記錄的大型資料庫。與此同時,MySQL也產生了很多分支版本的資料庫也非常值得推薦。首先是MariaDB,它是一個採用Maria存儲引擎的MySQL分支版本,是由原來MySQL的作者 Michael Widenius創辦的公司所開發的免費開源的資料庫伺服器。與MySQL相比較,MariaDB更強的地方在於它擁有更多的引擎,包括Maria存儲引擎、PBXT存儲引擎、XtraDB存儲引擎、FederatedX存儲引擎,它能夠更快的復制查詢處理、運行的速度更快、更好的功能測試以及支持對Unicode的排序等。其次是rcona,它為MySQL資料庫伺服器進行了改進,在功能和性能上較MySQL有著很顯著的提升。該版本提升了在高負載情況下的InnoDB的性能,同時,它還為DBA提供一些非常有用的性能診斷工具,並且提供很多參數和命令來控制伺服器行為。第三是Percona Server,它使用了諸如google-mysql-tools、Proven Scaling和 Open Query對MySQL進行改造。並且,它只包含MySQL的伺服器版,並沒有提供相應對 MySQL的Connector和GUI工具進行改進。非關系型資料庫NoSQL從NoSQL的字面上理解,NoSQL就是Not Only SQL,被業界認為是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對於目前鋪天蓋地的關系型資料庫運用,這一概念無疑是一種全新的思維的注入。盤點:開源社區那些免費的資料庫軟體當然,NoSQL也是隨著互聯網Web2.0網站的興起才能取得長足的進步。關鍵的需求在於,傳統的關系資料庫在應付Web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站顯得力不從心,暴露了很多難以克服的問題,而非關系型的資料庫則由於其本身的特點得到了非常迅速的發展。首先推薦的是Oracle NoSQL Database,這是一個社區版。Oracle的這個NoSQL Database, 是在10月4號的甲骨文全球大全上發布的Big Data Appliance的其中一個組件,Big Data Appliance是一個集成了Hadoop、NoSQL Database、Oracle資料庫Hadoop適配器、Oracle資料庫Hadoop裝載器及R語言的系統。其次推薦的是Membase。Membase是NoSQL家族的一個新的重量級的成員。Membase是開源項目,源代碼採用了Apache2.0的使用許可。該項目託管在GitHub.Source tarballs上,目前可以下載beta版本的Linux二進制包。該產品主要是由North Scale的memcached核心團隊成員開發完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線游戲和社區網路空間的供應商。並且,Membase容易安裝、操作,可以從單節點方便的擴展到集群,而且為memcached(有線協議的兼容性)實現了即插即用功能,在應用方面為開 發者和經營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase伺服器的前端。通過兼容多種編程語言和框架,Membase具備了很好的復用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程介面,包括可配置 的告警信息。Membase的目標是提供對外的線性擴展能力,包括為了增加集群容量,可以針對統一的節點進行復制。 另外,對存儲的數據進行再分配仍然是必要的。第三推薦的是Hibari。Hibari在日語中意思為「雲雀」,它是一個專為高可靠性和大數據存儲的資料庫引擎,可用於雲計算環境中,例如 webmail、SNS和其他要求T/P級數據存儲的環境中。同時,Hibari也支持Java,C/C++,Python,Ruby和Erlang語言的客戶端。第四推薦的是memcachedb。這是一個由新浪網的開發人員開放出來的開源項目,給memcached分布式緩存伺服器添加了Berkeley DB的持久化存儲機制和非同步主輔復制機制,讓memcached具備了事務恢復能力、持久化能力和分布式復制能力,非常適合於需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。第五推薦的是Leveldb。這是一個Google實現的非常高效的kv資料庫,目前的版本1.2能夠支持billion級別的數據量了。 在這個數量級別下還有著非常高的性能,主要歸功於它的良好的設計,特別是LSM演算法。LevelDB是單進程的服務,性能非常之高,在一台4個Q6600的CPU機器上,每秒鍾寫數據超過40w,而隨機讀的性能每秒鍾超過10w。XML資料庫的優勢XML資料庫是一種支持對XML格式文檔進行存儲和查詢等操作的數據管理系統。在系統中,開發人員可以對資料庫中的XML文檔進行查詢、導出和指定格式的序列化。目前XML資料庫有三種類型:XMLEnabledDatabase(XEDB),即能處理XML的資料庫;NativeXMLDatabase(NXD),即純XML資料庫;HybridXMLDatabase(HXD),即混合XML資料庫。關系資料庫中的第一代XML支持是切分(或分解)文檔,以適應關系表格或將文檔原封不動地存儲為字元或二進制大對象(CLOB 或 BLOB)。這兩個方法中的任一種都嘗試將XML模型強制轉換成關系模型。然而,這兩種方法在功能和性能上都有很大的局限性。混合型模型將XML存儲在類似於DOM的模型中。XML數據被格式化為緩沖數據頁,以便快速導航和執行查詢以及簡化索引編制。在這里,首要要推薦的XML資料庫是Sedna。它號稱是一款原生態的XML資料庫,提供了全功能的核心資料庫服務,包括持久化存儲、ACID事務、索引、安全、熱備、UTF8等。實現了 W3C XQuery 規范,支持全文搜索以及節點級別的更新操作。第二款XML資料庫是BaseX。這款資料庫用來存儲緊縮的XML數據,提供了高效的 XPath和XQuery的實現,同時,它還提供一個前端操作界面。盤點:開源社區那些免費的資料庫軟體第三款推薦的是XMLDB。這款資料庫使用了關系型資料庫來存儲任意的XML文檔,因為所採用的存儲機制,所以文檔的搜索速度特別快,同時執行XSL轉換也相當快。XMLDB同時還提供了一個PHP的模塊,可以應用在Web應用中。第四塊推薦的是X-Hive/DB。它是一個為需要高級XML數據處理和存儲功能的軟體開發者設計的強大的專屬XML資料庫。X-Hive/DB Java API包含存儲、查詢、檢索、轉換和發表XML數據的方法。與傳統關系型資料庫相比,XML資料庫具有以下優勢:第一,XML資料庫能夠對半結構化數據進行有效的存取和管理。如網頁內容就是一種半結構化數據,而傳統的關系資料庫對於類似網頁內容這類半結構化數據無法進行有效的管理。第二,提供對標簽和路徑的操作。傳統資料庫語言允許對數據元素的值進行操作,不能對元素名稱操作,半結構化資料庫提供了對標簽名稱的操作,還包括了對路徑的操作。第三,當數據本身具有層次特徵時,由於XML數據格式能夠清晰表達數據的層次特徵,因此XML資料庫便於對層次化的數據進行操作。XML資料庫適合管理復雜數據結構的數據集,如果己經以XML格式存儲信息,則XML資料庫利於文檔存儲和檢索;可以用方便實用的方式檢索文檔,並能夠提供高質量的全文搜索引擎。另外XML資料庫能夠存儲和查詢異種的文檔結構,提供對異種信息存取的支持。

H. 怎樣操作leveldb資料庫,實現增刪改查

下文例子中演示了如何插入、獲取、刪除一條記錄
LevelDB 簡介
一、LevelDB入門
LevelDB是Google開源的持久化KV單機資料庫,具有很高的隨機寫,順序讀/寫性能,但是隨機讀的性能很一般,也就是說,LevelDB很適合應用在查詢較少,而寫很多的場景。LevelDB應用了LSM (Log Structured Merge) 策略,lsm_tree對索引變更進行延遲及批量處理,並通過一種類似於歸並排序的方式高效地將更新遷移到磁碟,降低索引插入開銷,關於LSM,本文在後面也會簡單提及。
根據LevelDB官方網站的描述,LevelDB的特點和限制如下:
特點:
1、key和value都是任意長度的位元組數組;
2、entry(即一條K-V記錄)默認是按照key的字典順序存儲的,當然開發者也可以重載這個排序函數;
3、提供的基本操作介面:Put()、Delete()、Get()、Batch();
4、支持批量操作以原子操作進行;
5、可以創建數據全景的snapshot(快照),並允許在快照中查找數據;
6、可以通過前向(或後向)迭代器遍歷數據(迭代器會隱含的創建一個snapshot);
7、自動使用Snappy壓縮數據;
8、可移植性;

限制:
1、非關系型數據模型(NoSQL),不支持sql語句,也不支持索引;
2、一次只允許一個進程訪問一個特定的資料庫;
3、沒有內置的C/S架構,但開發者可以使用LevelDB庫自己封裝一個server;
LevelDB本身只是一個lib庫,在源碼目錄make編譯即可,然後在我們的應用程序裡面可以直接include leveldb/include/db.h頭文件,該頭文件有幾個基本的資料庫操作介面,下面是一個測試例子:

#include <iostream>
#include <string>
#include <assert.h>
#include "leveldb/db.h"

using namespace std;

int main(void)
{

leveldb::DB *db;
leveldb::Options options;
options.create_if_missing = true;

// open
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok());

string key = "name";
string value = "chenqi";

// write
status = db->Put(leveldb::WriteOptions(), key, value);
assert(status.ok());

// read
status = db->Get(leveldb::ReadOptions(), key, &value);
assert(status.ok());

cout<<value<<endl;

// delete
status = db->Delete(leveldb::WriteOptions(), key);
assert(status.ok());

status = db->Get(leveldb::ReadOptions(),key, &value);
if(!status.ok()) {
cerr<<key<<" "<<status.ToString()<<endl;
} else {
cout<<key<<"==="<<value<<endl;
}

// close
delete db;

return 0;
}

上面的例子演示了如何插入、獲取、刪除一條記錄,編譯代碼:

g++ -o test test.cpp libleveldb.a -lpthread -Iinclude

執行./test後,會在/tmp下面生成一個目錄testdb,裡麵包含若干文件:
------------------------------------------------------------
LevelDB是google開源的一個key-value存儲引擎庫,類似於開源的Lucene索引庫一樣。其他的軟體開發者可以利用該庫做二次開發,來滿足定製需求。LevelDB採用日誌式的寫方式來提高寫性能,但是犧牲了部分讀性能。為了彌補犧牲了的讀性能,一些人提議使用SSD作為存儲介質。
對於本地化的Key-value存儲引擎來說,簡單的使用一般都分成三個基本的步驟:(1)打開一個資料庫實例;(2)對這個資料庫實例進行插入,修改和查詢操作;(3)最後在使用完成之後,關閉該資料庫。下面將詳細討論該三個步驟:
一、打開一個資料庫實例
一個leveldb資料庫有一個對應一個文件系統目錄的名字。該資料庫的所有內容都存儲在這個目錄下。下面的代碼描述了怎樣打開一個資料庫或者建立一個新的資料庫。

#include <assert.h>
#include "leveldb/db.h"

leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok());

如果打開已存在資料庫的時候,需要拋出錯誤。將以下代碼插在leveldb::DB::Open方法前面:
options.error_if_exists = true;

二、對資料庫的簡單讀、寫操作
LevelDB提供了Put,Delete和Get三個方法對資料庫進行修改和查詢。例如,下面的代碼片段描述了怎樣將key1對應的value值,移到key2對應的值。

std::string value;
leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value);
if(s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value);
if(s.ok()) s = db->Delete(leveldb::WriteOptions(), key1);

三、關閉資料庫
在對資料庫進行了一系列的操作之後,需要對資料庫進行關閉。該操作比較簡單:

... open the db as described above...
... do something with db ...
delete db;

上面對levelDB的簡單使用做了基本的介紹,接下來就是如何自己寫一個完成並且能運行的例子。
1、下載源碼 git clone https://code.google.com/p/leveldb/
2、編譯源碼 cd leveldb && make all
3、編寫test.cpp

#include <assert.h>
#include <string.h>
#include <leveldb/db.h>
#include <iostream>

int main(){
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok());

//write key1,value1
std::string key="key";
std::string value = "value";

status = db->Put(leveldb::WriteOptions(), key,value);
assert(status.ok());

status = db->Get(leveldb::ReadOptions(), key, &value);
assert(status.ok());
std::cout<<value<<std::endl;
std::string key2 = "key2";

//move the value under key to key2

status = db->Put(leveldb::WriteOptions(),key2,value);
assert(status.ok());
status = db->Delete(leveldb::WriteOptions(), key);

assert(status.ok());

status = db->Get(leveldb::ReadOptions(),key2, &value);

assert(status.ok());
std::cout<<key2<<"==="<<value<<std::endl;

status = db->Get(leveldb::ReadOptions(),key, &value);

if(!status.ok()) std::cerr<<key<<" "<<status.ToString()<<std::endl;
else std::cout<<key<<"==="<<value<<std::endl;

delete db;
return 0;
}

4、編譯鏈接 g++ -o test test.cpp ../leveldb/libleveldb.a -lpthread -I../leveldb/include
注意libleveldb.a 和leveldb include的路徑。

5、運行結果./test:

value
key2===value
key NotFound:

I. leveldb資料庫是否外部使用


資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。資料庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型資料庫系統都在各個方面得到了廣泛的應用。在信息化社會,充分有效地管理和利用各類信息資源,是進行科學研究和決策管理的前提條件。資料庫技術是管理信息系統、辦公自動化系統、決策支持系統等各類信息系統的核心部分,是進行科學研究和決策管理的重要技術手段。
資料庫,簡單來說是本身可視為電子化的文件櫃--存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。資料庫指的是以一定方式儲存在一起、能為多個用戶共享、具有盡可能小的冗餘度的特點、是與應用程序彼此獨立的數據集合。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的"倉庫",並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫工資簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務倉庫生產的自動化管理。

J. Leveldb源碼有多少行

Leveldb源碼有2w行。不論從nosql的存儲設計,或是C++11的代碼規范來看,都是很好的源碼分析項目。為了更好地測試比較LevelDB的實際性能,Google的工程師也將LevelDB與另外兩種資料庫進行了對比。經過測試證明,LevelDB相較於另外兩種資料庫,無論是在基本操作環境下,還是在某些特定配置環境下,均具有非常優秀的讀寫性能。

Leveldb源碼優點

key與value採用字元串形式,且長度沒有限制。數據能持久化存儲,同時也能將數據緩存到內存,實現快速讀取。基於key按序存放數據,並且key的排序比較函數可以根據用戶需求進行定製。支持簡易的操作介面API,可以針對數據創建數據內存快照。支持前向、後向的迭代器。採用Google的Snappy壓縮演算法對數據進行壓縮,以減少存儲空間。

閱讀全文

與leveldb股票資料庫相關的資料

熱點內容
萬東醫療股票上市發行價 瀏覽:576
如何查詢股票買入時間點 瀏覽:746
南國置業股票重組多少個億 瀏覽:79
今日銀行股票 瀏覽:661
顧地科技是上市股票嗎 瀏覽:734
股票的資產模型 瀏覽:274
創業板漲幅20是所有創業板股票嗎 瀏覽:50
從指標分析哪些股票好 瀏覽:884
中等保守多資產配置組的股票行情 瀏覽:629
科技股票哪些好未來最牛的科技股 瀏覽:869
股票當日操作買賣怎麼賺錢 瀏覽:381
慈溪申請股票賬戶注冊 瀏覽:241
股票跌停洗盤第二天走勢 瀏覽:604
股票軟體快捷代碼 瀏覽:199
股票數據sdk 瀏覽:769
企業購買的優先股股票屬於投資混合型證券嗎 瀏覽:955
用30日均線做股票能賺錢嗎 瀏覽:445
中國股票總市值的構成 瀏覽:625
中國的百貨股票行情 瀏覽:838
定增股票買賣時間 瀏覽:450