Zdb數(shù)據(jù)庫數(shù)據(jù)類型望拖、分頁的一些介紹

細雨紛飛(600585) 20:28:16
@阿木 zdb是對象數(shù)據(jù)庫,可以容納各種對象挫鸽,對象和對象的區(qū)分说敏,是用id來干的
zdb內(nèi)置了TDataFrameEngine(zs用的數(shù)據(jù)結(jié)構(gòu)),isDF就是表示當前查詢到的對象是DataFrameEngine支持的數(shù)據(jù)結(jié)構(gòu)
VL掠兄,是ThashVariantList像云,這是key-value的數(shù)據(jù)結(jié)構(gòu)锌雀,value是Variant類型
VT蚂夕,是THashStringList迅诬,也是key-value,value類型永遠是字符串
TE婿牍,是ini結(jié)構(gòu)的數(shù)據(jù)庫侈贷,是bigInI
Json不解釋了
Other是自定義的數(shù)據(jù)格式,比如圖片等脂,就可以這種格式俏蛮,自行去判斷id
TQueryState是查詢過程中使用的對象,每次爬取一個對象都會以它來作為參數(shù)和你的程序交互

阿木(345148965) 20:29:05
這個上遥,解釋在哪里搏屑?

阿木(345148965) 20:29:07
我要看。

細雨紛飛(600585) 20:29:43
c_DF粉楚,c表示常量辣恋,const,df是DataFrameEngine的簡寫

阿木(345148965) 20:30:35
這個我知道模软,就是 每個數(shù)據(jù)引擎的標志位

林峰飛舞(5613606) 20:30:36
為什么不用全與

阿木(345148965) 20:30:45


image.png

我看到這了

阿木(345148965) 20:30:54
基本能理解

細雨紛飛(600585) 20:30:58
zdb存數(shù)據(jù)伟骨,就兩種方式,addData和insertData燃异,都是重載函數(shù)携狭,你可以給個你自己定義的id,然后用id來區(qū)分你的數(shù)據(jù)類型

細雨紛飛(600585) 20:32:06
query是遍歷查詢回俐,在zdb中逛腿,有后臺線程查詢和前臺查詢,這里區(qū)分一下就沒問題仅颇,zdb不要用在線程中

細雨紛飛(600585) 20:33:05
zdb的數(shù)據(jù)存儲后鳄逾,都會有個自己的StorePos,這個pos是數(shù)據(jù)庫的存儲坐標灵莲,你記住它就行了雕凹,以后需要就拿它去訪問數(shù)據(jù),不要再反復查詢了政冻,浪費時間

細雨紛飛(600585) 20:33:50
我記得vl枚抵,vt這兩個結(jié)構(gòu)都有csv和大型txt的外部支持

阿木(345148965) 20:34:27


image.png

這是 json server 的demo,我想弄在本地明场。

阿木(345148965) 20:34:29
還不知道如何寫

阿木(345148965) 20:34:57
MyCustomJsonAnalysisQuery 實際就是一個過濾函數(shù)吧

細雨紛飛(600585) 20:35:05
有個zdblocal的demo汽摹,它默認是df格式,你改成json格式就行了

細雨紛飛(600585) 20:35:23
@阿木 是的苦锨,查詢回調(diào)

細雨紛飛(600585) 20:35:39
在zs有很多demo用到過zdb

阿木(345148965) 20:35:45
我先嘗試下逼泣,insert query json吧趴泌。

細雨紛飛(600585) 20:37:37
insert需要一個storePos,在它前面插入拉庶,一般來說嗜憔,用addData就是寫數(shù)據(jù),查詢可以反向來

阿木(345148965) 20:37:48

細雨紛飛(600585) 20:38:33
數(shù)據(jù)和數(shù)據(jù)的關(guān)系+關(guān)聯(lián)氏仗,都用storePos來干就行了

阿木(345148965) 20:39:05
storePos 還不知道怎么獲取呢

細雨紛飛(600585) 20:39:23
執(zhí)行query時吉捶,在state里面

阿木(345148965) 20:39:31
找到了

阿木(345148965) 20:40:47


image.png

怎么顯示出來這個json?

細雨紛飛(600585) 20:40:51
按序列化方式皆尔,找store array這類方法

細雨紛飛(600585) 20:42:30
zdb每次查詢都會有個查詢?nèi)蝿?wù)呐舔,在任務(wù)中,有目標數(shù)據(jù)庫慷蠕,查詢的原數(shù)據(jù)庫珊拼,查詢到了多少條目,
每次遍歷會觸發(fā)filter流炕,遍歷完成會觸發(fā)done

細雨紛飛(600585) 20:43:32
Pipeline澎现,管線,是在zdb查詢?nèi)蝿?wù)基礎(chǔ)上做的高級查詢控制浪感,

阿木(345148965) 20:44:03
我現(xiàn)在就是想在done里面顯示出來

細雨紛飛(600585) 20:44:39
在filter里面顯示單條json昔头,在done顯示,你只能開output參數(shù)影兽,將查詢結(jié)果輸出揭斧,然后在done里面遍歷output數(shù)據(jù)庫

細雨紛飛(600585) 20:44:58
myoutput.waitquery(xxxx

細雨紛飛(600585) 20:47:26
也能在done時,再對myoutput做另一次查詢操作峻堰,即使你在查詢時候讹开,讓output在1秒后釋放,zdb會等待output沒有查詢?nèi)蝿?wù)才會釋放它

阿木(345148965) 20:48:37


image.png

. 這是就是對output進行的另外查詢吧

細雨紛飛(600585) 20:49:44
zdb有很多層次捐名,不要跨層使用旦万,
比如objectdata是純api的底層
objectdatamanger,是將api包成對象
zdbengine镶蹋,是在對象基礎(chǔ)上做成后臺引擎了
zdblocalmanager成艘,是在后臺引擎 上,做成查詢管線贺归,管理一批數(shù)據(jù)庫的中心系統(tǒng)
如果你在zdblocalmanager上使用淆两,就不要去調(diào)用下面的zdbengine,反復查詢都用zdblocalmanager里面的方法

阿木(345148965) 20:50:33
假如我從1000條里面查詢拂酣,得到了10個json對象秋冰,這10個,必須每一個單獨處理婶熬,或者最后在10個json集合上遍歷剑勾。

細雨紛飛(600585) 20:50:57
@阿木 非常正確

阿木(345148965) 20:51:38
為啥不一次性的顯示出這10個json呢埃撵?數(shù)組

細雨紛飛(600585) 20:52:17
@阿木 為什么要顯示出來?數(shù)據(jù)時拿來用的虽另,又不是拿來看的

阿木(345148965) 20:52:45
我表達錯了

阿木(345148965) 20:52:54
我的意思是暂刘,返回output的list

阿木(345148965) 20:52:59
或者array

阿木(345148965) 20:53:23
就是在done里面,直接拿到output list洲赵,而不需要再次query

阿木(345148965) 20:54:56
github

阿木(345148965) 20:55:11
我用string存進去鸳惯,能當json拿出來嗎商蕴?

細雨紛飛(600585) 20:55:12


image.png

細雨紛飛(600585) 20:55:23
@阿木 當然能

細雨紛飛(600585) 20:55:36
你自己注意區(qū)分id就行了

阿木(345148965) 20:55:45
那就好叠萍,我用qjson存進去

阿木(345148965) 20:55:57
群主的json控制,用的superobject吧绪商。

細雨紛飛(600585) 20:56:58


image.png

細雨紛飛(600585) 20:57:32
@阿木 隨意苛谷,反正都是對象,任何對象都可以用格郁,只能能用stream讀取保存的東西腹殿,zdb都能驅(qū)動

細雨紛飛(600585) 20:57:59
你可以自己包super,幾個函數(shù)的事

細雨紛飛(600585) 20:58:18
盡量避免跨層直接使用

阿木(345148965) 21:05:47
TZDBLocalManager 可以同時管理一堆db吧例书,每個db一個文件

細雨紛飛(600585) 21:06:56
@阿木 它就是干這件事的

細雨紛飛(600585) 21:07:50
盡量避免跨層call,TZDBLocalManager本身就提供了增刪查改了

細雨紛飛(600585) 21:08:13


image.png

阿木(345148965) 21:08:41


image.png

這個PostData,給一個庫添加數(shù)據(jù)罐寨。
每個庫昆汹,對應一個文件,相當于一個對象集合树瞭,每個庫拇厢,只能有一種類型吧?

細雨紛飛(600585) 21:09:16
@阿木 不是晒喷。能有多種類型孝偎,你自己編程去判斷數(shù)據(jù)的ID

阿木(345148965) 21:09:50
明白了,類型凉敲,其實是可以轉(zhuǎn)換的衣盾。

阿木(345148965) 21:09:59
比如string和json

細雨紛飛(600585) 21:10:37
@阿木 有差別的

阿木(345148965) 21:11:23
我看代碼了,是不同的engin

細雨紛飛(600585) 21:11:29
你在查詢時爷抓,string是一個字符串势决,json算數(shù)據(jù)結(jié)構(gòu)了,都在內(nèi)存中废赞,占用內(nèi)存大小各不相同徽龟,zdb退火系統(tǒng)就是管理他們的內(nèi)存暫用的

阿木(345148965) 21:12:00
這些明白

阿木(345148965) 21:12:02

細雨紛飛(600585) 21:12:40
比如這段代碼,js被zdb取出來唉地,我們并沒有釋放据悔,也沒有在使用前創(chuàng)建json传透,都是zdb內(nèi)部在管理它的內(nèi)存開銷


image.png

阿木(345148965) 21:12:42


image.png

image.png

我添加后,這樣取不到

阿木(345148965) 21:12:51


image.png

查詢到了

細雨紛飛(600585) 21:14:22
zdb為了達到最高的查詢效率极颓,把你使用過的對象朱盐,都暫存到內(nèi)存去了,當你再次使用菠隆,相當于高頻率查詢兵琳,zdb會把對象直接調(diào)度到你面前,根本不需要反復創(chuàng)建骇径,讀取zdb的stream

阿木(345148965) 21:15:31
querycounter是20躯肌,說明,遍歷全了破衔。

阿木(345148965) 21:16:10
QueryResultCounter 也是1

阿木(345148965) 21:17:05


image.png

前面 是true
為啥后面這個斷點沒有到清女?

阿木(345148965) 21:17:07


image.png

我查詢的參數(shù)有問題吧?

三人行(1491567248) 21:17:13
分布式下,多臺服務(wù)器呢?

阿木(345148965) 21:17:16
第一個 應該是true

阿木(345148965) 21:17:22
可以

三人行(1491567248) 21:17:24
這個查到的數(shù)據(jù),是最新數(shù)據(jù)?

阿木(345148965) 21:17:33
用的就是 群主的io

三人行(1491567248) 21:18:10
后臺通過另一臺服務(wù)器更新,那從緩存取出來的數(shù)據(jù),就不一定是最新的了

阿木(345148965) 21:18:16
弄出來了

阿木(345148965) 21:18:20


image.png

阿木(345148965) 21:18:27
基本思路明白了晰筛。

細雨紛飛(600585) 21:19:21
@阿木 以后你負責教zdb

細雨紛飛(600585) 21:19:37
教一個就行了嫡丙,讓他再教另一個

阿木(345148965) 21:29:36


image.png

這個是output吧?

細雨紛飛(600585) 21:34:24
是的

阿木(345148965) 21:43:24
這個读第,怎加索引曙博?

阿木(345148965) 21:43:40
加入從1000萬里面檢索,還不慢死

阿木(345148965) 21:44:08
只有一個key的hash怜瞒?

細雨紛飛(600585) 21:46:29
@阿木 加內(nèi)存 開大緩存

阿木(345148965) 21:46:37


image.png

默認值是0父泳,這個是個大bug

細雨紛飛(600585) 21:46:41
@阿木 不止

阿木(345148965) 21:47:26


image.png

尤其是這個 bool,有百分之五十的概率是錯誤的盼砍。

細雨紛飛(600585) 21:48:13
預處理一下

阿木(345148965) 21:49:41
起碼要有個default

阿木(345148965) 21:50:46


image.png

這個尘吗,怎么實現(xiàn)分頁?

阿木(345148965) 21:50:56
比如浇坐,查詢11-20項

阿木(345148965) 21:51:13
有個limit

細雨紛飛(600585) 21:52:15
@阿木 查完 除法來分

阿木(345148965) 21:53:05


image.png

這個就是那個索引吧

阿木(345148965) 21:53:57
qState睬捶。StorePos 是按照順序的吧

阿木(345148965) 21:54:07
或者說遞增的。

細雨紛飛(600585) 21:54:46
是的

細雨紛飛(600585) 21:57:10
@阿木 index是 pos不是

細雨紛飛(600585) 21:57:57
查完 輸出以后 在輸出庫實現(xiàn)分頁

阿木(345148965) 21:58:59
輸出庫房分頁近刘,點擊下一頁的時候擒贸,還要在前面庫

阿木(345148965) 21:59:07
還要在總庫上跑一遍。

阿木(345148965) 21:59:19
除非把輸出庫保存觉渴。

阿木(345148965) 21:59:39
當時 10個人查詢的條件不一樣的介劫,不可能為每個人保存一個輸出庫吧?

阿木(345148965) 22:03:58
TZDBLocalManager 是不是缺少個deleteDB案淋?我沒有找到

細雨紛飛(600585) 22:05:31
@阿木 分頁用是臨時庫 讓它活久點就行了

細雨紛飛(600585) 22:05:44
@阿木 有吧

阿木(345148965) 22:06:35
分頁有思路

阿木(345148965) 22:06:39
刪除沒找到

細雨紛飛(600585) 22:09:39


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末座韵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌誉碴,老刑警劉巖宦棺,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異黔帕,居然都是意外死亡代咸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門成黄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呐芥,“玉大人,你說我怎么就攤上這事奋岁∷嘉粒” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵厦取,是天一觀的道長潮太。 經(jīng)常有香客問我管搪,道長虾攻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任更鲁,我火速辦了婚禮霎箍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘澡为。我一直安慰自己漂坏,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布媒至。 她就那樣靜靜地躺著顶别,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拒啰。 梳的紋絲不亂的頭發(fā)上驯绎,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音谋旦,去河邊找鬼剩失。 笑死,一個胖子當著我的面吹牛册着,可吹牛的內(nèi)容都是我干的拴孤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼甲捏,長吁一口氣:“原來是場噩夢啊……” “哼演熟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起司顿,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤芒粹,失蹤者是張志新(化名)和其女友劉穎蚕冬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體是辕,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡囤热,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了获三。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旁蔼。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疙教,靈堂內(nèi)的尸體忽然破棺而出棺聊,到底是詐尸還是另有隱情,我是刑警寧澤贞谓,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布限佩,位于F島的核電站,受9級特大地震影響裸弦,放射性物質(zhì)發(fā)生泄漏祟同。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一理疙、第九天 我趴在偏房一處隱蔽的房頂上張望晕城。 院中可真熱鬧,春花似錦窖贤、人聲如沸砖顷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽滤蝠。三九已至,卻和暖如春授嘀,著一層夾襖步出監(jiān)牢的瞬間物咳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工粤攒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留所森,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓夯接,卻偏偏與公主長得像焕济,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盔几,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,905評論 2 89
  • 1晴弃、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,969評論 3 119
  • 不知道你沒有這樣過: 看到別人不開心想安慰上鞠,卻發(fā)現(xiàn)找不到合適的話語际邻,于是就把滿腔熱情和關(guān)心憋在心里。 想把自己心里...
    我是情緒怪人啊閱讀 2,417評論 0 0
  • 每個人都有的美好時光芍阎,我多希望能回到小的時候世曾,那是一個陽光明媚早晨,那時候的我特別高興谴咸,時光啊可不可以...
    源源加油_ab4d閱讀 135評論 0 0
  • 看到這樣一個故事轮听,我心里不便也是酸的,一個40歲被開除失業(yè)的父親岭佳,從辦公室血巍,抱著零碎的物件,回到家珊随。他喝了...
    作家彭雅倫閱讀 817評論 0 2