資料庫資料分析思路記錄

2021-09-12 06:33:09 字數 2797 閱讀 1973

1、問題原因:

由於資料庫匯入錯誤,導致資料插入不完整,其中有json串格式的沒有插入進去,不知道哪乙個庫匯入失敗,哪一張表建立失敗,所以後台專案啟動失敗;由於表有幾百張不能去一一比對,所以產生以下解決方法。

2、解決思路:

將初始庫中表的結構及資料與匯入失敗的庫中表的結構與資料進行對比,將資料插入不完整的表或資料重新插入。

1:將所有庫中的所有表統計出來,並放到以庫名命名的txt檔案中,表示乙個庫中所有的表資料;

2:將所有庫中的所有表所插入的資料統計出來,並放到以庫名命名的txt中,表示乙個庫中所有表的插入資料。

3:將整理後的所有庫中的表資料整合到乙個txt文字中,待後面對比使用。

4:將整理後的所有庫中所有表裡面的插入資料整合到乙個txt文字中,待後面對比使用。

5:將整理後的兩個txt檔案中的資料放入excel中,統計庫名、表名、表中的資料;(其中對比時以庫名+表名的形式進行對比,保證資料的唯一性)

6:表中的資料可用excel函式vlookup進行篩選。

3、解決方法:

1:將初始庫中所有庫匯入linux系統,通過linux命令將所有庫以及庫中的表和資料匯出到文字中;

匯出方法:

通過

grep --color -n "drop table if exists " databastname.sql >> databastname-table.txt
命令將所有庫中的表全部統計出來並放到以庫名命名的txt檔案中(因為有多少條drop table if exists語句就表示建立了多少張表,所以直接查詢drop table if exists語句就可以統計有多少表被建立)。

在通過

grep --color -n "insert into" databastname.sql >> databastname-table-data.txt
命令將庫中所有插入命令全部統計出來並放到以庫名命名的txt檔案中(因為有多少條insert into語句就有多少條插入資料,所以直接查詢insert into語句就可以統計有多少條插入資料)。

初始庫與當前庫都需要進行兩中統計操作,用於後面進行對比。

結構如下圖:

2:當所以庫全部統計出來以後,進行資料合併操作,將初始庫中所有庫統計到乙個檔案中(可通過shell指令碼進行合併):

sed 's/^/dabatasename &/g' dabatasename-table.txt >> table.txt

wc -l table.txt

將所有庫統計出的表檔案整合到table.txt中,並在資料前方加入庫名和空格

sed 's/^/dabatasename &/g' dabatasename-table-data.txt >> table-data.txt

wc -l table-data.txt

將所有庫的表中統計出的插入資料全部整合到table-data.txt中,並在前方加入庫名和空格

顯示插入的行數

3:將整合好的兩個txt檔案進行進一步的資料處理:

table-data.txt檔案形式為:

將values後面的資料去掉,得到的形式應為:

sed 's/values.*//g' table-data.txt > table-data1.txt`

刪除values.後面的內容

table.txt檔案形式為:

把table.txt中檔案的數字及:刪除掉:

sed -r 's/ [0-9](.*):/ /g' table-data1.txt > table-data2.txt	

(第乙個空格之後到第二個空格之前的數字及:刪除)

整理後的檔案形式應為:(兩個檔案全部這樣整理)

(第乙個空格之後到第二個空格之前的數字及:刪除)

sort table-data2.txt | uniq -c > table-data3.txt

記錄重複出現的行數,也就是插入同一張表中的資料

整理後形式如下:

4、將原始庫和當前庫全部做以上操作後,拉入excel表中進行對比:

資料條數為:

將兩個txt檔案內容拉到同乙個excel中進行比對,通過vlookup函式計算表資料條數。

資料分析 時序資料庫

海量資料分析類系統的設計主要面臨2個大問題 優勢和劣勢 加入了hadoop體系的生態圈,更加容易被接受,同時省去了研發分布式儲存系統的麻煩,更多的是在分布式查詢上做優化。但無法在儲存上做更加深度的優化,比如沒有倒排索引支援,過濾查詢速度可能相對弱些,後面會重點分析下opentsdb的困局。優勢和劣勢...

資料庫元資料分析Demo

核心類 databasemetadata resultsetmetadata 1 system.err.println 2 connection conn datasourceutils.getdatasource getconnection 3 databasemetadata dbmd conn...

資料分析利器 列式儲存資料庫

什麼是列式資料庫?可能大家也才到了,既然有列式資料庫,那麼肯定就有行式的嘍!確實是這樣的。也許大多數人並不了解資料庫儲存模型 storage model 和資料庫的資料模型 data model 不過對上層是使用者也沒多大關係。不過我們現在講的列式和行式就是指資料庫的storage model,而他...