十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
如何用Python構(gòu)建MySQL數(shù)據(jù)處理系統(tǒng),針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
寶應(yīng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
我是一名自然語言處理/機(jī)器學(xué)習(xí)科學(xué)家,而我不認(rèn)為具有良好的計算機(jī)科學(xué)背景就能夠成功地在這個領(lǐng)域工作。我所認(rèn)識的杰出研究人員可能由于某些原因而不具有熟練的技能,無法成為實時開發(fā)和存儲庫團(tuán)隊的一部分。所以,我仍然想分享它們,也許有人會發(fā)現(xiàn)這些信息很有用。
我希望人們會喜歡我所講的故事。
(1)處理異常是至關(guān)重要的
當(dāng)我第一次嘗試連接到存儲在谷歌云上的這個特定MySQL數(shù)據(jù)庫時,曾遇到許多不同的錯誤。當(dāng)設(shè)置代理時,對很多代理進(jìn)行了體驗。問題是,在代碼開發(fā)的第一階段,最好是處理所有的錯誤,特別是與連接有關(guān)的錯誤,如果需要的話,引發(fā)這些錯誤,否則調(diào)用Exchange語句。
這聽起來很簡單,但在我的例子中,可能有環(huán)境變量,其中有UNIX套接字名稱和節(jié)點環(huán)境名稱,它們的值可能不正確,數(shù)據(jù)庫憑據(jù)也可能不正確,我可以擁有它所有的東西。我在處理這些例子期間花費(fèi)幾個小時,但節(jié)省了很多時間,我很高興將這段時間用于這個階段的項目開發(fā)。
(2)適當(dāng)?shù)某橄箢愂菬o價的
在處理抽象類時,你需要記住的最重要的事情是,可能需要花費(fèi)大量時間和注意力來定義它,并且也確實需要它。我的存儲庫的結(jié)構(gòu)基于這樣一個事實,即我必須創(chuàng)建許多.csv文件,這些文件具有非常相似的模式(唯一鍵)。事實上,我有很多類似的提取器、算法、數(shù)據(jù)后置處理器等工具,所有這些都被簡化為基本抽象類,這使得下一個模塊的創(chuàng)建更加容易。
當(dāng)你編寫第n個模塊時,可以意識到你的類已經(jīng)完成了,并且明白編譯過程中沒有定義的構(gòu)造函數(shù)和一些方法已經(jīng)實現(xiàn)了,因此不需要為它們煩惱。
(3)靈活的存儲庫結(jié)構(gòu)總是最好的
有時它可能看起來有點難看(例如,在一個文件夾中有1個文件),但如果看到需要更改一些關(guān)鍵模塊(例如文本預(yù)處理器)并且這樣做,只需更改1-2個文件,那就很好了。
我并不是一名軟件架構(gòu)師,所以很難說出這個領(lǐng)域的優(yōu)點和錯誤,但我認(rèn)為組件的高度碎片化和獨(dú)立性總是良好的。我自己開發(fā)的repoI有大量的小文件夾,并且引向它們比嘗試使整個架構(gòu)更加容易(也許更漂亮)。
(4)數(shù)據(jù)科學(xué)模型的測試是值得的
我沒有足夠的時間來完成涵蓋所有案例的完美測試。我仍然提到這一點的原因是,如果你沒有那么明顯的ML/NLP模型行為,最好至少為了自己而進(jìn)行測試。
我沒有很多NLP/ML算法(其中大部分算法都很簡單),但如果沒有實施哪怕最簡單的測試的話,它們的其他部分就無法支持。此外,在更好的模型理解方面,測試通常是有用的,這是因為通過斷言語句,當(dāng)希望在頭腦中刷新算法時,一些算法概念可能變得更加清晰。
(5)使數(shù)據(jù)庫符合第三范式
有時這可能是人們討論的一部分,但是如果不使所有3個語句完全適用于數(shù)據(jù)庫,就無法編寫有效的數(shù)據(jù)處理系統(tǒng)。如果沒有它們,一些不明顯的查詢問題經(jīng)常發(fā)生,甚至無法找到問題所在。
這里有一個簡短而簡單的SQL NF指南,我認(rèn)為最好多看幾遍。(https://www.geeksforgeeks.org/database-normalization-normal-forms/)
(6)記錄錯誤
在實現(xiàn)記錄時,通常不會查看收到三年所有的警告和錯誤,但有些錯誤可能不可重復(fù),而且日志記錄幫助理解發(fā)生了什么事。我是在我的本地機(jī)器上實施的,當(dāng)服務(wù)器上的某些東西沒有工作時,通過查看類似的案例,可以節(jié)省幾個小時的時間。
(7)除非數(shù)據(jù)庫非常簡單,否則不需要對象關(guān)系映射(ORM)
在這個項目工作的很長一段時間里,我真的很擔(dān)心需要用對象關(guān)系映射(ORM)重寫所有內(nèi)容。但是我錯了。
實際上,像SQLAlchemy和Peewee這樣的東西適合小型的簡單數(shù)據(jù)庫,但是它們不適合像復(fù)雜數(shù)據(jù)庫(有時它需要4個分組和5個連接來編寫一個查詢)。它們很優(yōu)雅,有時非常簡單和美觀,但無論如何,如果你只使用連接器API,就不能擁有盡可能多的控制權(quán)。我決定使用MySQL Connector,因為用對象關(guān)系映射(ORM)編寫所有內(nèi)容可能會使棘手的事情變得更加復(fù)雜。
結(jié)論
這個注釋與ML/ NLP算法解釋及其性能討論無關(guān),但我仍然認(rèn)為它很有用。我希望在開始研究這個項目之前已經(jīng)知道了上面描述的所有陳述,但也確定,只有花費(fèi)一些時間來修復(fù)bug,并尋找實際問題之后,它們中的一些問題才會變得清晰易懂。
關(guān)于如何用Python構(gòu)建MySQL數(shù)據(jù)處理系統(tǒng)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。