這是全棧數(shù)據(jù)工程師養(yǎng)成攻略系列教程的第六期:6 數(shù)據(jù) 解讀數(shù)據(jù)結(jié)構(gòu)和類(lèi)型。
數(shù)據(jù)的結(jié)構(gòu)
在DT時(shí)代党觅,我們的生活中隨處都會(huì)接觸到各種各樣的數(shù)據(jù)雌澄。以地鐵數(shù)據(jù)為例,可以分為靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)兩大類(lèi)杯瞻。
- 靜態(tài)數(shù)據(jù):包括線路信息和站點(diǎn)信息等镐牺,例如一共有多少條線路,每條線路包含哪些站點(diǎn)魁莉,各個(gè)站點(diǎn)的名稱(chēng)睬涧、首末班車(chē)時(shí)間等信息。這類(lèi)數(shù)據(jù)一般不包含時(shí)間戳旗唁,更新頻率較低宙地,數(shù)據(jù)量整體較少;
- 動(dòng)態(tài)數(shù)據(jù):主要是地鐵的刷卡記錄逆皮,乘客在進(jìn)站和出站時(shí)的刷卡操作都會(huì)產(chǎn)生一條刷卡記錄宅粥。這類(lèi)數(shù)據(jù)一般包含時(shí)間戳,用于說(shuō)明數(shù)據(jù)產(chǎn)生的時(shí)間电谣,并且是不斷產(chǎn)生的秽梅。
時(shí)間戳是指從1970年1月1日0時(shí)0分0秒到某一時(shí)刻所經(jīng)歷的秒數(shù)。對(duì)于同一個(gè)時(shí)刻剿牺,不同的人會(huì)有不同的表述方式企垦,即不同格式的時(shí)間文本。通過(guò)時(shí)間戳晒来,我們可以用整數(shù)或浮點(diǎn)數(shù)來(lái)表示任意一個(gè)時(shí)刻钞诡,從而便于代碼表示和計(jì)算。
大多數(shù)數(shù)據(jù)是以行和列的結(jié)構(gòu)表示的。每一行表示一條記錄荧降,或者稱(chēng)為一條觀測(cè)接箫,例如在地鐵線路數(shù)據(jù)里,每一行就表示一條線路的信息朵诫。每一列表示一個(gè)字段辛友,或者稱(chēng)為一項(xiàng)屬性,例如在地鐵線路數(shù)據(jù)里剪返,可能包含“線路名稱(chēng)”废累、“運(yùn)營(yíng)時(shí)間”、“線路顏色”等列脱盲。
因此可以用二維數(shù)組或二維表的概念來(lái)表示大多數(shù)數(shù)據(jù)邑滨,就像Excel中的表格,以及關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)表等钱反。
數(shù)據(jù)的類(lèi)型
TXT
是最常見(jiàn)的文本數(shù)據(jù)掖看,里面存放的是純文本,可以記錄任意內(nèi)容诈铛,每行的長(zhǎng)度是可變的乙各,文件的總行數(shù)也是任意的,因此非常自由幢竹。
CSV
是Comma Seperated Value耳峦,即逗號(hào)分隔值』篮粒可以將CSV理解為一種文本形式表示的二維表蹲坷,每一行代表一條記錄,每條記錄的字段數(shù)量是一致的邑飒,字段之間以逗號(hào)分隔循签。CSV可以包含一行表頭,用于說(shuō)明每個(gè)字段的名稱(chēng)疙咸,因此CSV和Excel中的表格县匠、關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)表都是類(lèi)似的,以下就是一個(gè)簡(jiǎn)單的例子撒轮。
id,name,gender,age
1,Honlan,male,24
2,Baby,female,22
JSON
是一種非常通用的數(shù)據(jù)類(lèi)型乞旦,本質(zhì)上是一種鍵值對(duì)字符串,在前端题山、后端等多種場(chǎng)景多門(mén)語(yǔ)言中都可以加載使用兰粉。如果將CSV理解為Python中的二維數(shù)組即嵌套的列表,那么就可以將JSON理解為Python中的字典顶瞳,以下就是一個(gè)簡(jiǎn)單的例子玖姑。
{"id": 1, "name": "Honlan", "gender": "male", "age": 24}
總的來(lái)說(shuō)愕秫,TXT、CSV和JSON里存的都是文本焰络,不同的只是文本的組織結(jié)構(gòu)戴甩,以及文件命名時(shí)分別使用 .txt
、 .csv
和 .json
作為后綴名舔琅。
SQL
是關(guān)系型數(shù)據(jù)庫(kù)文件等恐,以最常用的 MySQL
數(shù)據(jù)庫(kù)為例洲劣,MySQL中的數(shù)據(jù)庫(kù)和數(shù)據(jù)表都可以導(dǎo)出為 .sql
文件用于數(shù)據(jù)備份备蚓,而 .sql
文件也可以導(dǎo)入已有的數(shù)據(jù)庫(kù)和數(shù)據(jù)表中用于數(shù)據(jù)恢復(fù)。
后續(xù)章節(jié)中會(huì)介紹如何使用MAMP和WAMP在個(gè)人電腦上搭建Web環(huán)境囱稽,并詳細(xì)講解和MySQL數(shù)據(jù)庫(kù)相關(guān)的內(nèi)容郊尝。