您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“在編寫下一個SQL查詢之前需要注意的問題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“在編寫下一個SQL查詢之前需要注意的問題有哪些”吧!
當(dāng)我在Airbnb時,我有很好的機會,可以在向Brian Chesky報告的新團隊中工作。這是令人興奮的 - 我們正在扮演一個新產(chǎn)品系列,所以我們必須每天制作更改游戲的決定。但作為團隊的數(shù)據(jù)科學(xué)家,我始終負責(zé)采購數(shù)據(jù)以指導(dǎo)我們的產(chǎn)品方向,這意味著很多分析工作。
第一周是對我的上下文開關(guān)的能力的艱難測試:我不得不找到模糊的表格并編寫大量查詢,但甚至通過Beautifulsoup Scrapes和Veartrics API請求正則表達式。截至第三周,我開始累了,所以我需要一個系統(tǒng)來保持我的速度。我來實現(xiàn),在使用數(shù)據(jù)時,只有兩種可以搞砸的方式:
使用錯誤的數(shù)據(jù)。
錯誤的使用數(shù)據(jù)。
這兩個都可以通過在數(shù)據(jù)周圍具有更好的上下文來解決。
所以我自己做了一個清單來減輕這兩個錯誤,以確保我不會將產(chǎn)品引導(dǎo)到遺忘。我會在這里分享我的,但是這對你來說究竟可能取決于你公司的特定籌碼。將此作為一個示例指南,了解如何讓自己一些好的語境,以使您使用表格的危險,但我鼓勵您采取這個并使其成為自己的。
那么我需要什么背景,我如何得到它?
嗯,您需要任何和所有信息,這些信息將減少錯誤或使用錯誤數(shù)據(jù)的數(shù)據(jù)。在我的經(jīng)驗中,只需三個檢查可以獲得合理的覆蓋:
檢查基本表METAData.e.g。列名稱,分區(qū)信息,如何生成。
檢查您的假設(shè)。在本專欄中是什么?這是一個空列嗎?什么是截然不同的價值?自上次我跑這個查詢以來有這些改變嗎?
與別人聯(lián)系。其他人在做這張表做什么?你問誰有疑問嗎?
1.檢查基本表元數(shù)據(jù)
第一步是它找到一個表并弄清楚如何查詢它。
You must woo your table before it will reveal its secrets(Reposted with permission from Olya Tanner)
對于最基本的信息,如列名,索引信息,分區(qū)信息,查看定義,您通常可以查詢系統(tǒng)表。手頭保留這些表的列表,以便您可以輕松查詢它們。例如,對于符合ANSI SQL的數(shù)據(jù)庫(其中大多數(shù)),請記住以下表格通常有助于:
Information_schema.columnScolumn 名稱,分區(qū)信息,列類型,無效。
Information_schema.tables和Information_schema.viewSnice列表所有表和視圖。視圖,您通常可以獲得DDL語句。
您通常還可以獲得其他人寫的查詢歷史,這可以幫助弄清楚如何使用表格。您甚至可以通過語句類型進行過濾(例如,創(chuàng)建,插入,選擇)以確定如何創(chuàng)建表:
Information_schema.jobs_by_project(bigquery)表(Information_schema.query_history())
2.檢查您的假設(shè)。
記下您的假設(shè)并運行查詢來檢查它們。
A nice illustration of a person making a checklist, in case you haven’t seen one before.
此時您希望查看數(shù)據(jù)是否是您認為的。雖然我的典型方法是隨意走過的選擇*并選擇不同的語句,但這是次優(yōu)。更好的方法是首先弄清楚:
我需要回答什么問題,我制作了什么假設(shè)?
寫下這些,然后寫下回答這些問題的查詢/驗證這些假設(shè)。它可能聽起來很簡單,但如果你做出錯誤的假設(shè),你必須重新開始。我們在使用數(shù)據(jù)時都做出假設(shè) - 如果您沒有明確到他們,這是一個災(zāi)難的配方。
最近項目的一些示例:
每次活動只有一行嗎?
該字段的可能值是什么?
這個專欄是無數(shù)的嗎?
如果為null,則對這些空值有任何系統(tǒng)模式?
我個人使用鯨魚(CLI工具,如果我感到不耐煩)或運行的dataframe(甚至計劃)這些快速檢查,但無論您使用什么,只需確保將它們保持持久。
最后,是的,它很好 - 繼續(xù)進行選擇*。有時您只需要查看一片數(shù)據(jù)。
3.與其他人聯(lián)系
既然你已經(jīng)有一種感覺的數(shù)據(jù)的形式,只是潛入并建立你需要建立的東西。別。您需要盡可能多地獲得各種社交環(huán)境和部落知識,并且在大型組織中尤其如此。
現(xiàn)在是時候收集部落知識了。
我知道這些人沒有面孔,但是在獲得一些其他社交環(huán)境之后,您難道不就讓右邊的家伙感到高興嗎?
不幸的是,只有這么多,您可以通過單獨疏浚數(shù)據(jù)來獲得。您需要與真實的人交談(或找到一些最新的文件)。
通過查詢?nèi)罩?見上文),通過Github的Slog(如果您的查詢是版本控制的),或者檢查表的所有者是誰(您通常可以在數(shù)據(jù)上下文/發(fā)現(xiàn)工具中這樣做,如dataframe) - 只是找一個人懈怠。
一般來說,我問以下問題:
這是維持嗎?
這是用于{{你的場景}}的最佳數(shù)據(jù)嗎?
迄今為止你所做的事情是開放的。你可能在錯誤的表上,但人們欣賞一些爭議。
到此,相信大家對“在編寫下一個SQL查詢之前需要注意的問題有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。