新聞中心
隨著數(shù)碼技術(shù)的發(fā)展,數(shù)據(jù)已經(jīng)成為企業(yè)運(yùn)營(yíng)和決策制定的重要基礎(chǔ)。然而,數(shù)據(jù)處理的煩惱也日益增加,尤其是大數(shù)據(jù)時(shí)代下,數(shù)據(jù)量的龐大和多樣性使得數(shù)據(jù)處理更加困難。為此,一種新型的數(shù)據(jù)庫(kù)——ON數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生,它具有創(chuàng)新和實(shí)用的特點(diǎn),成功解放了數(shù)據(jù)處理的煩惱。

十載的鶴壁網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鶴壁建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“鶴壁網(wǎng)站設(shè)計(jì)”,“鶴壁網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
一、ON數(shù)據(jù)庫(kù)的基本概念
ON數(shù)據(jù)庫(kù)也稱為面向文檔的數(shù)據(jù)庫(kù),其是一種輕量級(jí)的、基于文檔的數(shù)據(jù)庫(kù)。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,ON數(shù)據(jù)庫(kù)更強(qiáng)調(diào)文檔之間的關(guān)系,數(shù)據(jù)被存儲(chǔ)為自包含的ON格式的文檔。它以柔性的文檔結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),并具有強(qiáng)大的文檔導(dǎo)航和查詢能力,在存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)表現(xiàn)方面相對(duì)更靈活自由。此外,相比較關(guān)系型數(shù)據(jù)庫(kù),ON數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)格式更加簡(jiǎn)潔明了,也更易于進(jìn)行處理和查詢。
二、ON數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)
1. 簡(jiǎn)單易用:與關(guān)系型數(shù)據(jù)庫(kù)相比,ON數(shù)據(jù)庫(kù)無(wú)需進(jìn)行表定義、規(guī)范化和關(guān)系建立,其文檔可以自由地被增刪改查,減少了開發(fā)和運(yùn)維人員工作的復(fù)雜度和難度。
2. 自由度高:ON數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)形式非常靈活,存儲(chǔ)的文檔可以包含任何類型的信息,因此可以在不同項(xiàng)目中使用相同的技術(shù)和工具,并且存儲(chǔ)的信息可以根據(jù)業(yè)務(wù)需求進(jìn)行擴(kuò)展和收縮。
3. 查詢性能高:對(duì)于大量的復(fù)雜查詢,ON數(shù)據(jù)庫(kù)相較于關(guān)系型數(shù)據(jù)庫(kù),更有優(yōu)勢(shì),因?yàn)镺N數(shù)據(jù)庫(kù)可以進(jìn)行多級(jí)嵌套的查詢,并支持索引,提高數(shù)據(jù)查詢的效率。
4. 團(tuán)隊(duì)協(xié)作便捷:ON數(shù)據(jù)庫(kù)所支持的數(shù)據(jù)格式簡(jiǎn)單明了,在不同團(tuán)隊(duì)之間數(shù)據(jù)的共享變得更加方便快捷,同時(shí)也減少了成本。
三、應(yīng)用場(chǎng)景
在互聯(lián)網(wǎng)數(shù)據(jù)處理、Web采集和云計(jì)算等領(lǐng)域,ON數(shù)據(jù)庫(kù)越來(lái)越受到歡迎。例如在電商領(lǐng)域,商家交易數(shù)據(jù)和客戶行為數(shù)據(jù)可以被存儲(chǔ)在ON數(shù)據(jù)庫(kù)中,從而方便對(duì)數(shù)據(jù)進(jìn)行分析和匯總。在大型的社交軟件中,用戶個(gè)人資料和狀態(tài)更新數(shù)據(jù)也可以存儲(chǔ)在ON數(shù)據(jù)庫(kù)中,使得應(yīng)用之間可以分享相同的API接口。在數(shù)據(jù)倉(cāng)庫(kù)及數(shù)據(jù)分析領(lǐng)域,ON數(shù)據(jù)庫(kù)也可以很好地解決多個(gè)海量結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)問(wèn)題。在物聯(lián)網(wǎng)領(lǐng)域,ON數(shù)據(jù)庫(kù)以其高效靈活的存儲(chǔ)方式,支持更為豐富的數(shù)據(jù)格式,所以可以廣泛應(yīng)用于物聯(lián)設(shè)備的數(shù)據(jù)處理。
四、ON數(shù)據(jù)庫(kù)的發(fā)展趨勢(shì)
隨著云計(jì)算技術(shù)的發(fā)展,各種類型和規(guī)模的數(shù)據(jù)正在涌向云端,以便充分利用云技術(shù)和分析方法來(lái)獲取更全面的數(shù)據(jù)分析。ON數(shù)據(jù)庫(kù)具有適應(yīng)云計(jì)算的優(yōu)勢(shì),更加高效、靈活和可擴(kuò)展,因此它成為了未來(lái)的發(fā)展趨勢(shì)。與此同時(shí),在和大數(shù)據(jù)領(lǐng)域的迅速發(fā)展背景下,將會(huì)有更多的機(jī)會(huì)使ON數(shù)據(jù)庫(kù)更加廣泛地應(yīng)用于實(shí)際生產(chǎn)中,并且更好地發(fā)揮其優(yōu)勢(shì)。
五、結(jié)語(yǔ)
ON數(shù)據(jù)庫(kù)的興起是對(duì)傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)一種新的挑戰(zhàn),也是對(duì)數(shù)據(jù)存儲(chǔ)和處理標(biāo)準(zhǔn)的革新。它減輕了傳統(tǒng)數(shù)據(jù)庫(kù)所帶來(lái)的局限性,更加強(qiáng)調(diào)數(shù)據(jù)的靈活性、兼容性和易操作性。在大數(shù)據(jù)時(shí)代的前提下,ON數(shù)據(jù)庫(kù)成為了應(yīng)用于數(shù)據(jù)處理和管理困難的新型工具,在解決多樣化和海量數(shù)據(jù)處理中有著重要的作用。
相關(guān)問(wèn)題拓展閱讀:
- 怎么在mysql中放入json數(shù)據(jù)
怎么在mysql中放入json數(shù)據(jù)
我們知道,ON是一種輕量級(jí)的數(shù)據(jù)交互的格式,大部分NO SQL數(shù)據(jù)庫(kù)的存儲(chǔ)都用ON。MySQL從5.7開始支持ON格式的數(shù)據(jù)存儲(chǔ),并且新增了很多ON相關(guān)函數(shù)。MySQL 8.0 又帶來(lái)了一個(gè)新的把ON轉(zhuǎn)換為TABLE的函數(shù)ON_TABLE,實(shí)現(xiàn)了ON到表的轉(zhuǎn)換。
舉例一
我們看下簡(jiǎn)單的例子:
簡(jiǎn)單定義一個(gè)兩級(jí)ON 對(duì)象
mysql> set @ytt='{“name”:}’;Query OK, 0 rows affected (0.00 sec)
之一級(jí):
mysql>談肢 select json_keys(@ytt);+—+| json_keys(@ytt) |+—+| |+—+1 row in set (0.00 sec)
第二級(jí):
mysql> select json_keys(@ytt,’$.name’);+-+| json_keys(@ytt,’$.name’) |+-+| |+-+1 row in set (0.00 sec)
我們使用MySQL 8.0 的ON_TABLE 來(lái)轉(zhuǎn)換 @ytt。
mysql> select * from json_table(@ytt,’$.name’ columns (f1 varchar(10) path ‘$.a’, f2 varchar(10) path ‘$.b’)) as tt;
+++
| f1 | f2 |
+++
| ytt | action |
| dble | shard |
| mysql | oracle |
+++
3 rows in set (0.00 sec)
舉例二
再來(lái)一個(gè)復(fù)雜點(diǎn)的例子,用的是EXPLAIN 的ON結(jié)果集。
ON 串 @json_str1。
set @json_str1 = ‘ { “query_block”: { “select_id”: 1, “cost_info”: { “query_cost”: “1.00” }, “table”: { “table_name”: “bigtable”, “access_type”: “const”, “possible_keys”: , “key”: “id”, “used_key_parts”: , “絕森key_length”: “8”, “ref”: , “rows_examined_per_scan”: 1, “rows_produced_per_join”: 1, “filtered”: “100.00”, “cost_info”: {“read_cost”: “0.00”,”eval_cost”: “0.20”,”prefix_cost”: “0.00”,”data_read_per_join”并侍畝: “176” }, “used_columns”: } }}’;
之一級(jí):
mysql> select json_keys(@json_str1) as ‘first_object’;+—+| first_object |+—+| |+—+1 row in set (0.00 sec)
第二級(jí):
mysql> select json_keys(@json_str1,’$.query_block’) as ‘second_object’;++| second_object|++| |++1 row in set (0.00 sec)
第三級(jí):
mysql> select json_keys(@json_str1,’$.query_block.table’) as ‘third_object’\G*************************** 1. row ***************************third_object: 1 row in set (0.01 sec)
第四級(jí):
mysql> select json_extract(@json_str1,’$.query_block.table.cost_info’) as ‘forth_object’\G*************************** 1. row ***************************forth_object: {“eval_cost”:”0.20″,”read_cost”:”0.00″,”prefix_cost”:”0.00″,”data_read_per_join”:”176″}1 row in set (0.00 sec)
那我們把這個(gè)ON 串轉(zhuǎn)換為表。
SELECT * FROM ON_TABLE(@json_str1,
“$.query_block”
COLUMNS(
rowid FOR ORDINALITY,
NESTED PATH ‘$.table’
COLUMNS (
a1_1 varchar(100) PATH ‘$.key’,
a1_2 varchar(100) PATH ‘$.ref’,
a1_3 varchar(100) PATH ‘$.filtered’,
nested path ‘$.cost_info’
columns (
a2_1 varchar(100) PATH ‘$.eval_cost’ ,
a2_2 varchar(100) PATH ‘$.read_cost’,
a2_3 varchar(100) PATH ‘$.prefix_cost’,
a2_4 varchar(100) PATH ‘$.data_read_per_join’
),
a3 varchar(100) PATH ‘$.key_length’,
a4 varchar(100) PATH ‘$.table_name’,
a5 varchar(100) PATH ‘$.access_type’,
a6 varchar(100) PATH ‘$.used_key_parts’,
a7 varchar(100) PATH ‘$.rows_examined_per_scan’,
a8 varchar(100) PATH ‘$.rows_produced_per_join’,
a9 varchar(100) PATH ‘$.key’
),
NESTED PATH ‘$.cost_info’
columns (
b1_1 varchar(100) path ‘$.query_cost’
),
c INT path “$.select_id”
)
) AS tt;
++——+++——+——+——+——+——+++——+——+——+——+——+——+
| rowid | a1_1 | a1_2 | a1_3 | a2_1 | a2_2 | a2_3 | a2_4 | a3 | a| a5 | a6 | a7 | a8 | a9 | b1_1 | c |
++——+++——+——+——+——+——+++——+——+——+——+——+——+
|| id | const | 100.00 | 0.20 | 0.00 | 0.00 | 176 | 8 | bigtable | const | id | 1 | 1 | id | NULL | 1 |
|| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1.00 | 1 |
++——+++——+——+——+——+——+++——+——+——+——+——+——+
2 rows in set (0.00 sec)
當(dāng)然,ON_table 函數(shù)還有其他的用法,我這里不一一列舉了,詳細(xì)的參考手冊(cè)。
請(qǐng)點(diǎn)擊輸入圖片描述
josn格式在需要處理的ON這篇日志中,鏈接:
處理ON格余如盯式的文本有多種方法,寫一下豎和我的方法,請(qǐng)大家指點(diǎn)一下。
先橡輪分析一下ON格式,主要框架有user、statu,retweeted_status,visible、geo、annotations,我就建幾個(gè)bean
他們是一對(duì)一的關(guān)系,user和statu、retweeted_status,是一對(duì)一,statu和statu、visible、geo、annotations一對(duì)一
,retweeted_status和visible、geo一對(duì)一關(guān)系。
利用反射處理,部分代碼如下:
得到set方法
Object b = jsonObject.get(k);
StringBuffer setM = new StringBuffer();
setM.append(“set”);
setM.append(k.substring(0, 1).toUpperCase());
setM.append(k.substring(1, k.length()));
Field field = userClass.getDeclaredField(k);
Method method = userClass.getMethod(setM.toString(),new Class{ field.getType() });
執(zhí)行set方法:method.invoke(userObject, new Object{statusObject});
大致的思路是這樣的
在插入之前把數(shù)據(jù)處理一下,保證數(shù)據(jù)在取出的時(shí)候不會(huì)出錯(cuò),就行了,和普通的插入是一樣的
1、表字段類型是varchar、text等能存字符串的數(shù)據(jù)類配叢型
2、應(yīng)用轉(zhuǎn)換成json字符串直接insert語(yǔ)句插陵賣仔入就可以尺汪了
新建一個(gè)json數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于新建一個(gè)json數(shù)據(jù)庫(kù),創(chuàng)新實(shí)用!新建ON數(shù)據(jù)庫(kù),解放數(shù)據(jù)處理之煩惱,怎么在mysql中放入json數(shù)據(jù)的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話:13518219792
當(dāng)前標(biāo)題:創(chuàng)新實(shí)用!新建ON數(shù)據(jù)庫(kù),解放數(shù)據(jù)處理之煩惱(新建一個(gè)json數(shù)據(jù)庫(kù))
網(wǎng)頁(yè)地址:http://m.fisionsoft.com.cn/article/djscipo.html


咨詢
建站咨詢
