偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

什么是高基數(shù)?

譯文 精選
數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) 工業(yè)物聯(lián)網(wǎng)
本文主要探查導(dǎo)致高基數(shù)的原因,以及為什么高基數(shù)在處理時(shí)序數(shù)據(jù)時(shí)是一個(gè)常見(jiàn)問(wèn)題。

高基數(shù)列是指數(shù)據(jù)基本不重復(fù)或者均為唯一值的列。典型的高基數(shù)列有ID標(biāo)識(shí),電子郵件地址或者用戶(hù)名等。一個(gè)具有高基數(shù)的數(shù)據(jù)表列的例子是具有一個(gè)名為USER_ID的列的USERS表。

這一列包含1-n的唯一值。每次在USERS表中創(chuàng)建一個(gè)新用戶(hù)時(shí),將在USER_ID列中創(chuàng)建一個(gè)新數(shù)字,以唯一地標(biāo)識(shí)它們。由于USER_ID列中保存的值是唯一的,因此該列的基數(shù)類(lèi)型被稱(chēng)為高基數(shù)。

如果你的工作中用到了數(shù)據(jù)庫(kù),特別是要處理時(shí)序數(shù)據(jù),那么可能你就會(huì)面對(duì)處理高基數(shù)數(shù)據(jù)的挑戰(zhàn)。

特別是工業(yè)物聯(lián)網(wǎng)(如制造業(yè)、石油和天然氣、公用事業(yè)等)以及一些監(jiān)控和事件數(shù)據(jù)工作負(fù)載中,時(shí)間序列高基數(shù)的處理是一個(gè)常見(jiàn)問(wèn)題。高基數(shù)也是開(kāi)發(fā)人員經(jīng)常討論的一個(gè)話(huà)題,圍繞它經(jīng)常會(huì)有很多問(wèn)題。

這里要澄清一個(gè)常見(jiàn)的混淆點(diǎn):高基數(shù)在時(shí)序數(shù)據(jù)世界中之所以成為如此大的問(wèn)題,是因?yàn)橐恍┝餍械臅r(shí)序數(shù)據(jù)庫(kù)的局限性。如果選擇了正確的數(shù)據(jù)庫(kù),高基數(shù)數(shù)據(jù)其實(shí)是一個(gè)已經(jīng)解決了的問(wèn)題。

讓我們回過(guò)頭來(lái)首先來(lái)定義什么是高基數(shù)。

Image

什么是高基數(shù)? 

廣義上講,基數(shù)是指一個(gè)集合中的值的數(shù)量。有時(shí),集合的基數(shù)很小(低基數(shù)),有時(shí)可能很大(高基數(shù))。例如,上圖中有很多(美味的)M&M,但該數(shù)據(jù)集的基數(shù)非常?。?):

Image

在數(shù)據(jù)庫(kù)世界中,基數(shù)是指數(shù)據(jù)庫(kù)的特定列或字段中包含的唯一值的數(shù)量。

然而,對(duì)于時(shí)序數(shù)據(jù)來(lái)說(shuō),事情可能變得有些復(fù)雜了。時(shí)序數(shù)據(jù)往往與描述該數(shù)據(jù)的元數(shù)據(jù)(有時(shí)稱(chēng)為“標(biāo)簽”)配對(duì)。

通常,主時(shí)序數(shù)據(jù)或元數(shù)據(jù)會(huì)被索引以提高查詢(xún)性能,這樣就可以快速找到匹配所有指定標(biāo)簽的值。時(shí)序數(shù)據(jù)集的基數(shù)最典型是定義方式為每個(gè)索引列的基數(shù)的交叉乘積。

如果有6種顏色的m&m巧克力豆以及5種類(lèi)型的m&m巧克力豆(普通的、花生的、杏仁的、椒鹽脆餅的和脆的),那么我們的基數(shù)現(xiàn)在是6x5 = 30種m&m巧克力豆。有了正確的索引,我們就能高效地找到所有藍(lán)色的、酥脆的m&m巧克力豆(這是客觀上最好的)。

如果你有多個(gè)索引列,每個(gè)列都有大量的唯一值,那么叉乘的基數(shù)可能會(huì)變得非常大。這是軟件開(kāi)發(fā)人員在談?wù)摼哂小案呋鶖?shù)”的時(shí)序數(shù)據(jù)集時(shí),“高基數(shù)”的通常含義。

讓我們來(lái)看一個(gè)例子。

高基數(shù)示例:工業(yè)物聯(lián)網(wǎng) 

想象一個(gè)物聯(lián)網(wǎng)場(chǎng)景,在某個(gè)采石場(chǎng),有大型、沉重的設(shè)備在進(jìn)行采礦、破碎巖石和分類(lèi)巖石這三種作業(yè)。

假設(shè)有10000件設(shè)備,每件設(shè)備有100個(gè)傳感器,運(yùn)行10個(gè)不同的固件版本,分布在100個(gè)地點(diǎn):這個(gè)數(shù)據(jù)集的最大基數(shù)變成了10億[10,000 x 100 x 10 x 100]。現(xiàn)在,假設(shè)設(shè)備也可以移動(dòng),我們想要存儲(chǔ)精確的GPS位置(lat、long)(緯度,經(jīng)度),并將其用作查詢(xún)的索引元數(shù)據(jù)。因?yàn)?lat, long)是一個(gè)連續(xù)的字段(而不是像equipment_id這樣的離散字段),通過(guò)對(duì)位置進(jìn)行索引,這個(gè)數(shù)據(jù)集的最大基數(shù)現(xiàn)在是無(wú)限大的(無(wú)界)。

為時(shí)序設(shè)計(jì)的關(guān)系型數(shù)據(jù)庫(kù)如何處理高基數(shù) 

不同的數(shù)據(jù)庫(kù)采用不同的方法來(lái)處理高基數(shù)。根本上說(shuō),在使用高基數(shù)數(shù)據(jù)集時(shí),數(shù)據(jù)庫(kù)的性能表現(xiàn)如何可以追溯到它從一開(kāi)始是如何設(shè)計(jì)的。

如果你正在處理大量的時(shí)序數(shù)據(jù)并使用關(guān)系數(shù)據(jù)庫(kù),那么用于索引數(shù)據(jù)的一種經(jīng)過(guò)驗(yàn)證的數(shù)據(jù)結(jié)構(gòu)是b樹(shù)。依賴(lài)b樹(shù)數(shù)據(jù)結(jié)構(gòu)來(lái)索引數(shù)據(jù)對(duì)于高基數(shù)數(shù)據(jù)集有幾個(gè)好處:

  • 你可以清晰地理解數(shù)據(jù)庫(kù)的執(zhí)行方式。只要你希望查詢(xún)的數(shù)據(jù)集的索引和數(shù)據(jù)適合內(nèi)存(這是可以調(diào)優(yōu)的),基數(shù)就不是問(wèn)題。
  • 你可以控制索引哪些列,包括在多個(gè)列上創(chuàng)建聯(lián)合索引的能力。你還可以隨時(shí)添加或刪除索引,如果你的查詢(xún)工作負(fù)載發(fā)生了變化。
  • 你可以在離散和連續(xù)字段上創(chuàng)建索引,特別是因?yàn)閎樹(shù)可以很好地使用以下操作符進(jìn)行比較:<,<=,=,>=,>,BETWEEN, IN, IS NULL, IS NOT NULL。我們的示例查詢(xún)(“SELECT * from sensor_data WHERE mem_free = 0”和“SELECT * from sensor_data WHERE temperature > 90”)將運(yùn)行在對(duì)數(shù)或O(log n)的時(shí)間復(fù)雜度內(nèi)。

雖然時(shí)序數(shù)據(jù)庫(kù)使用其他方法來(lái)實(shí)現(xiàn)高基數(shù),但使用b樹(shù)結(jié)構(gòu)已被證明是可靠的。如果你遇到有關(guān)高基數(shù)的數(shù)據(jù)問(wèn)題,可以留言一起討論。

參考鏈接:https://dzone.com/articles/what-is-high-cardinality

譯者介紹

盧鑫旺,51CTO社區(qū)編輯,半路出家的九零后程序員。做過(guò)前端頁(yè)面,寫(xiě)過(guò)業(yè)務(wù)接口,搞過(guò)爬蟲(chóng),研究過(guò)JS,有幸接觸Golang,參與微服務(wù)架構(gòu)轉(zhuǎn)型。目前主寫(xiě)Java,負(fù)責(zé)公司可定制化低代碼平臺(tái)的數(shù)據(jù)引擎層設(shè)計(jì)開(kāi)發(fā)工作。

責(zé)任編輯:閆懷德 來(lái)源: 51CTO
相關(guān)推薦

2020-09-21 06:53:41

NoSQL高并發(fā)面試

2019-04-25 09:36:18

Kafka高可靠高可用

2018-02-27 14:30:17

2024-08-23 20:53:47

2021-03-20 22:46:22

IaaSSaaSPaaS

2025-01-10 09:15:57

2019-05-06 11:12:18

Redis高并發(fā)單線(xiàn)程

2023-09-01 13:49:00

內(nèi)存進(jìn)程線(xiàn)程

2019-11-22 16:09:02

企業(yè)安全網(wǎng)絡(luò)風(fēng)險(xiǎn)管理IT

2019-11-23 17:23:53

網(wǎng)絡(luò)風(fēng)險(xiǎn)網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2020-07-14 14:59:00

控制反轉(zhuǎn)依賴(lài)注入容器

2017-12-19 21:29:58

物聯(lián)網(wǎng)區(qū)塊鏈大數(shù)據(jù)

2019-12-10 13:01:08

安全網(wǎng)絡(luò)風(fēng)險(xiǎn)數(shù)據(jù)

2020-11-20 10:51:03

云計(jì)算

2025-06-09 07:46:44

服務(wù)降級(jí)高并發(fā)

2017-07-10 09:42:48

2012-11-26 11:01:18

算法基數(shù)估計(jì)編程

2018-01-30 11:17:56

集群分布式SOA?

2010-08-26 09:27:53

DHCP服務(wù)器

2009-07-16 09:56:32

什么是iBATIS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)