Partition Key 的數學本質:從資料科學到日常生活的分類思維

更新 發佈閱讀 9 分鐘
當代藝術家Hanne Darboven: Section of the Century calender. 資料科學裡常用日期當作partition key.

當代藝術家Hanne Darboven: Section of the Century calender. 資料科學裡常用日期當作partition key.

“I'm interested in pictures that depict the passing of time.”- David Hockney

前言

開始在數據部門工作的時候,那是第一次接觸到partition key的概念,之前在學校只有提到primary key。Partition key的概念簡單也容易上手,在SQL query裡的WHERE寫個含有partition key的篩選條件來限制資料獲取的大小,重點只是query時候要養成使用他的習慣,讓query的掃描量盡可能縮小,以提升計算資源的使用效率。

SELECT (varname) FROM (tabname)
WHERE (partition_key) = (constant_value)

在資料表格設計的階段,Partition key大多會選資料創造或是寫入的時間,可能是時間、日期或月份年份的欄位。這也符合商業思考的習慣,例如當我們提到「四月份的營業額」或是「十一月份的現金流量」等等說法時,涉及到的都是具體那些時間區間的資料,類似於年鑑的概念,像是行政院主計總處發布的「統計年鑑」這種按年份分冊的方法,實務上符合我們的思考習慣,所以大家在設計表格的partition key大多是按照這個邏輯來設定。

當然,雖然目前工作裡看到的表格,他們的partition key也都是取時間欄位來用,但也不是說partition key一定要是這些時間欄位。只要表格能按一定的方法分割,我們都可以用那個方法所創建出來的欄位當作partition key。

Partition key這種分割表格資料、把每一個row的資料分類的方法,在數學裡也有相應叫partition的名詞定義,可以用來描述我們在做partition key這件事情的本質。

數學裡的partition

本節分成兩個部分,第一部分是與partition相關的定義與定理,在經過引入partition, equivalence class, quotient set三個定義後,探討partition和quotient set其實是等價的命題,說明我們分割或是分類的行為,是把屬性一樣的東西一堆一堆放在一起。確切地說,分割是用「集合」描述分類,而等價關係 是用「關係」描述分類,兩個概念是等價的。

第二部分是從數學裡的partition概念對應到資料科學平常都在做的partition的一些感想,同時推廣到我們日常生活中所做的分類,像是我們有時候喜歡人以群分,具體而言像是把每個人的出生日期分進各個星座裡,這樣整個社會就有「按各個星座分類的人群」這個partition了。

定義與命題

這個部分介紹partition和equivalence class的定義,以及由某個等價關係所引出的quotient set,這些要素是組成後面要說到的「quotient set和partition等價」這件事,這個命題就像是在說我跟你很像的時候,其實也像在說我跟他不一樣。

raw-image

Partition 可以理解為在X的冪集排除空集後的集合中,選出一組子集,使得它們的聯集恰為整個X, 且任兩個不同的子集之間沒有交集。

raw-image

Equivalence class 描述的是在給定一個等價關係後,所有彼此等價的元素會被分進同一個子集。例如,如果「星座相同」被視為一種等價關係,那麼只要我和你都是牡羊座,我們就會同屬於「牡羊座人群」這個等價類。

raw-image

Quotient set 則是由所有等價類所組成的集合。延續星座的例子,如果「星座相同」是一個等價關係,那麼整個社會的人群就會被劃分為 12 個星座人群,而這 12 個星座人群本身,便構成了 quotient set。

由上面三個定義,我們可以按照定義引出本文的主要命題:

raw-image

該命題的證明方式,主要要凸顯等價類之間不會重疊。

raw-image

這正是等價類能夠形成partition的關鍵性質,同樣partition也能夠形成等價類equivalence class,因此兩個概念是等價的,只是用不同面向在說同一件事情。

當代藝術家Hanne Darboven與他的像日曆一樣的作品

當代藝術家Hanne Darboven與他的像日曆一樣的作品

資料科學與生活裡的partition

Google Big Query裡面的partition key

Google Big Query裡面的partition key

其實在數據工作裡,一般時候也不會特別思考partition分割這個操作本身的定義或隱含的數學道理,但是至少在這個數學的探討裡,能夠知道只要表格的欄位符合哪些條件的話,就可以當作partition key,便不只是直接用時間相關的變數來當作partition key。另一方面,partition指出如何在不產生重疊與遺漏的前提下,對整體進行系統性的劃分,這種劃分方式不僅具有嚴格的數學定義,也在資料科學領域的反覆出現,我們也可以從partition的數學角度來映照到日常生活。

在資料科學領域,大型資料集往往依照某些欄位進行partition,例如時間區間、使用者識別碼或地理區域,同時要確保每一筆資料只屬於某一個partition,而所有partitions的聯集則完整涵蓋整個資料集。其結構特性與集合論中的partition完全一致,即資料不重複、分類完整、邊界清晰。差異僅在於資料科學中的 partition 不僅是概念性的分類工具,更承擔著提升查詢效率、降低計算成本與支援平行運算的功能。

同樣的結構亦可在日常生活的制度安排中觀察到。行政區劃要求各區域彼此不重疊,卻又必須完整覆蓋國土;班級或組織分組要求每位成員僅隸屬於一個單位,同時不遺漏任何人;垃圾分類制度要求每件物品皆有明確歸屬,否則整體運作便會失效。這些看似平凡的制度設計,實際上都隱含著與集合論partition相同的邏輯,一旦明確分類方式,便可在結構上保持一致性與可操作性。

進一步感想

由於「分割」和「等價關係」是相同的概念,所以當我說我和你是一樣的人的時候,其實隱含我和另一些人是不一樣的,就好像當我說我是牡羊座的人時,相信星座的人便不認為我會有牡羊座之外的特質。當我們宣稱「某兩個元素屬於同一類」時,這一判斷在結構上必然伴隨著另一個事實:存在一個邊界,將它們與其他元素區隔開來。在集合論中,這種區隔是中性的、形式化的;但在社會語境中,類似的分類邏輯往往會被賦予價值判斷與情感意涵。

以日常語言中的「我們是同一類人」為例,這句話表面上描述的是共享某種特徵,實際上卻同時隱含了對「非我族類」的排除。從結構角度來看,這正是partition的互斥性在社會語境中的具體展現,一旦類別被確立,類內的認同與類外的排除便同時生成,分類在此不僅是一種認知工具,更是一種界線劃定的行為。任何分類系統,都是在某個特定標準下對世界進行的簡化與取捨,在等價關係所選擇的判斷標準裡,決定了哪些差異被忽略,哪些差異被保留。

聖經故事巴別塔,人因為有通天的企圖而被懲罰成各個族群,族群就是人的partition.

聖經故事巴別塔,人因為有通天的企圖而被懲罰成各個族群,族群就是人的partition.

從這個角度來看,partition不僅是一個數學定義,也是一種普遍存在於知識建構與社會實踐中的思維模式,既提供了秩序,也劃定了界線。在分類下的世界變得更易於理解,就像語言的功能一樣,一個東西一旦有了名字,人們就對他有更好的掌控力,便有東西屬於這個名字,也有東西不屬於這個名字,同時也就不可避免地引入了排除。

小記

法國作家莫泊桑小說《脂肪球》的畫作。Beaux-Arts de Carcassonne - Boule de Suif 1884 - Paul-Émile Boutigny

法國作家莫泊桑小說《脂肪球》的畫作。Beaux-Arts de Carcassonne - Boule de Suif 1884 - Paul-Émile Boutigny

在資料分析的工作裡,每次query時若被提醒估計的掃描量太大,就會去查看partition key是query的表的哪個欄位,是日常工作裡的常見操作程序。

有時也困惑當初partition key是怎麼被設計出來的。partition key存在的合理性可以簡單拿實際生活經驗舉例,想成如果一本書沒有分章節,像是莫泊桑小說選裡面沒有按獨立的各個短篇分章節設置目錄,那麼當我想要查「脂肪球分食物給馬車上的大家」這個片段時,如果這本書還是有頁數、也就是內容有排序,那麼我掃描可以從頭開始翻書到這個片段,而如果沒有排序,甚至要整本書看完才能拼湊出這段完整的情節。相反,如果這本書有目錄,那麼我們直接看「脂肪球」這個章節,在這個章節的範圍裡查找那個情節就可以了,不用從整本書一頁一頁找。

雖然例子可以從日常生活信手拈來,但是在設計partition key的時候也肯定不是從這種生活比喻提出來的。不太確定這種開發是從數學基礎來論證並設計要做partition key,還是從經驗慢慢形成大量資料存取就是要這樣處理。

2025/12/21,冬至,新北板橋,小胡


參考文獻

Ok, E. A. (2007). Real analysis with economic applications (Vol. 10). Princeton University Press.






留言
avatar-img
留言分享你的想法!
avatar-img
英特來糗
10會員
26內容數
兩位對知識懷抱熱忱的大學同學主筆,一些科技、經濟、職涯知識分享。透過分享我們的已知,希望幫助在同一條道上的人走得更順利,未見得正確,能燃起一些火花足矣。 - 筆者 鯛魚:政大差點延畢,現職軟體產品經理。 筆者 小胡:政大雙主修經濟、上海復旦經濟學碩士,現職銀行數據分析師。
英特來糗的其他內容
2025/11/23
本文從個人職涯發展的「履歷拼圖」概念出發,探討如何透過有策略地選擇工作、累積關鍵技能,達成薪資與能力的對齊。作者分享四年半內四次跳槽、薪資翻三倍的心得,強調識別每份工作對履歷的附加價值,並在學習曲線趨緩時適時轉換跑道,以實現個人職涯的持續成長與對理想工作的追求。
Thumbnail
2025/11/23
本文從個人職涯發展的「履歷拼圖」概念出發,探討如何透過有策略地選擇工作、累積關鍵技能,達成薪資與能力的對齊。作者分享四年半內四次跳槽、薪資翻三倍的心得,強調識別每份工作對履歷的附加價值,並在學習曲線趨緩時適時轉換跑道,以實現個人職涯的持續成長與對理想工作的追求。
Thumbnail
2025/10/06
本文結合芥川龍之介的短篇小說《鼻子》、行為經濟學論文《Financial shame spirals》以及總體經濟學論文《Slow boom, sudden crash》,探討人們面對自身缺陷(特別是財務困境)時的逃避心態,以及這種心態如何加劇困境。
Thumbnail
2025/10/06
本文結合芥川龍之介的短篇小說《鼻子》、行為經濟學論文《Financial shame spirals》以及總體經濟學論文《Slow boom, sudden crash》,探討人們面對自身缺陷(特別是財務困境)時的逃避心態,以及這種心態如何加劇困境。
Thumbnail
2025/09/29
本文探討將人生職涯「All in」於單一工作路線的風險,並以個人經驗與案例,闡述「多線並行」的必要性與優勢,強調此策略能大幅提升職涯韌性,在變動的世界中尋求穩定與發展。
Thumbnail
2025/09/29
本文探討將人生職涯「All in」於單一工作路線的風險,並以個人經驗與案例,闡述「多線並行」的必要性與優勢,強調此策略能大幅提升職涯韌性,在變動的世界中尋求穩定與發展。
Thumbnail
看更多