數據中臺已成下一風口,它會顛覆數據工程師的工作嗎?

數據中臺被譽爲大數據的下一站,由阿里興起,核心思想是數據共享,並在2018年因爲“騰訊數據中臺論”再度成爲了人們談論的焦點。如今似乎人人都在提數據中臺,但卻不是所有人都清楚數據中臺到底意味着什麼。數據中臺是隻有大廠才需要考慮的高大上的概念嗎?普通企業該不該做數據中臺?數據中臺的出現會給現有數據從業者們帶來顛覆式的挑戰嗎?帶着上述問題,InfoQ採訪了ThoughtWorks數據和智能總監史凱,談談他對於數據中臺的看法。

數據中臺不是大數據平臺!

首先它不是一個平臺,也不是一個系統,如果有廠商說他們有個數據中臺賣給你,對不起,它是個騙子。
要回答數據中臺是什麼,首先要探討一下中臺到底是什麼。雖然沒有明確的定義,但是作爲理工直男,我們可以先把中臺看作是一種中間層。既然是一種中間層,那麼中臺確實是一種十足技術用語,我們可以完全從技術角度來探討了。

我們可以應用Gartner的Pace Layer來理解爲什麼要有中間層,這樣可以更好地理解中臺的定位和價值。Pace Layer裏提到,可以按照事物變化的速度來分層,這樣可以逐層分析並設計合理的邊界與服務。

image

在數據開發中,核心數據模型的變化是相對緩慢的,同時,對數據進行維護的工作量也非常大;但業務創新的速度、對數據提出的需求的變化,是非常快速的。

數據中臺的出現,就是爲了彌補數據開發和應用開發之間,由於開發速度不匹配,出現的響應力跟不上的問題。

數據中臺解決的問題可以總結爲如下三點:

  1. 效率:爲什麼應用開發增加一個報表,就要十幾天時間?爲什麼不能實時獲得用戶推薦清單?當業務人員對數據產生一點疑問的時候,需要花費很長的時間,結果發現是數據源的數據變了,最終影響上線時間。

  2. 協作問題:當業務應用開發的時候,雖然和別的項目需求大致差不多,但因爲是別的項目組維護的,所以數據還是要自己再開發一遍。

  3. 能力問題:數據的處理和維護是一個相對獨立的技術,需要相當專業的人來完成,但是很多時候,我們有一大把的應用開發人員,而數據開發人員很少。

這三類問題都會導致應用開發團隊變慢。這就是中臺的關鍵——讓前臺開發團隊的開發速度不受後臺數據開發的影響。

史凱總結說,“數據中臺是聚合和治理跨域數據,將數據抽象封裝成服務,提供給前臺以業務價值的邏輯概念”。

如下圖所示:

image

DData API是數據中臺的核心,它是連接前臺和後臺的橋樑,通過API的方式提供數據服務,而不是直接把數據庫給前臺、讓前臺開發自行使用數據。至於產生DataAPI的過程,怎麼樣讓DataAPI產生得更快,怎麼樣讓DATA API更加清晰,怎麼樣讓DATA API的數據質量更好,這些是要圍繞數據中臺去構建的能力。

數據中臺和數據倉庫、數據平臺的關鍵區別

這是現在數據行業大家經常討論的問題,到底數據倉庫、數據平臺和數據中臺的區別是什麼。

image

概況地說,三者的關鍵區別有以下幾方面:

  1. 數據中臺是企業級的邏輯概念,體現企業D2V(Data to Value)的能力,爲業務提供服務的主要方式是數據API;

  2. 數據倉庫是一個相對具體的功能概念,是存儲和管理一個或多個主題數據的集合,爲業務提供服務的方式主要是分析報表;

  3. 數據平臺是在大數據基礎上出現的融合了結構化和非結構化數據的數據基礎平臺,爲業務提供服務的方式主要是直接提供數據集;

  4. 數據中臺距離業務更近,爲業務提供速度更快的服務;

  5. 數據倉庫是爲了支持管理決策分析,而數據中臺則是將數據服務化之後提供給業務系統,不僅限於分析型場景,也適用於交易型場景;

  6. 數據中臺可以建立在數據倉庫和數據平臺之上,是加速企業從數據到業務價值的過程的中間層。

數據倉庫具有歷史性,其中存儲的數據大多是結構化數據,這些數據並非企業全量數據,而是根據需求針對性抽取的,因此數據倉庫對於業務的價值是各種各樣的報表,但這些報表又無法實時產生。數據倉庫報表雖然能夠提供部分業務價值,但不能直接影響業務。

數據平臺的出現是爲了解決數據倉庫不能處理非結構化數據和報表開發週期長的問題,所以先撇開業務需求、把企業所有的數據都抽取出來放到一起,成爲一個大的數據集,其中有結構化數據、非結構化數據等。當業務方有需求的時候,再把他們需要的若干個小數據集單獨提取出來,以數據集的形式提供給數據應用。

而數據中臺是在數據倉庫和數據平臺的基礎上,將數據生產爲爲一個個數據API服務,以更高效的方式提供給業務。

數據中臺應該具備什麼能力?

大數據和人工智能大火之後這幾年,很多人一直在提一個說法,那就是“數據是新的石油”。但史凱的觀點卻有些不同,在他看來,數據不等於數據資產,如果沒有從業務的角度對數據進行規劃,再多的數據也無法產生價值。

史凱認爲數據中臺最核心的一個關鍵組件是數據資產目錄。“我們認爲,一個企業的數據要能夠充分發揮價值,很重要的一個前提條件就是這個企業的數據結構和數據資產目錄是對整個企業開放的。所有人都能夠通過這個資產目錄瞭解公司有哪些類別的數據、包含什麼屬性、源數據由誰管理,這樣就可以快速搞清楚這些數據是不是自己需要的。但數據本身可以不開放,因爲數據是有隱私信息和安全級別的。”

大企業內部業務衆多,不同業務可能存在很多重複數據。所謂的數據資產目錄就是把數據的模型去重、歸一、梳理,變成一個樹狀結構,這個樹狀結構不直接對應數據庫中的字段。以航空貨運爲例,其數據資產可能包括貨機、客運機的輔艙,一架貨機就是一個數據資產目錄的節點,而貨機的各種屬性(如貨機型號、空間大小、年份等)就是這個節點下面的數據模型。數據資產目錄做的事情就是從業務層面出發制定數據標準,將企業業務相關的數據資產模型抽取出來,這跟後面用什麼數據庫去存儲、用什麼結構去存儲、存成結構化還是非結構化都沒有關係。它相當於把企業的業務從數據層面做了一個梳理,用數據的語言把企業的業務模型還原出來。數據資產目錄做好之後,後面纔是用什麼技術手段、從哪裏提取數據來映射到這個數據資產目錄。

除了開放,數據資產目錄還應該具有標籤描述、可檢索,這樣才能最大程度地方便真正使用數據的人,以最快的速度找到他們需要的東西。

在ThoughtWorks提出的精益數據創新體系中將企業所需要具備的數據能力概括爲以下六種,具備了這六種能力,企業才具備成爲數據驅動的智能企業的基礎,而這些能力的承載平臺,就是數據中臺:

image

  1. 數據資產的規劃和治理

做中臺之前,首先需要知道業務價值是什麼,從業務角度去思考企業的數據資產是什麼。數據資產不等同於數據,數據資產是唯一的,能爲業務產生價值的數據。對於同一堆數據,不同業務部門所關注的數據指標可能完全不同,怎麼讓各個跨域的業務變成統一的標準,就需要規劃企業的數據全景圖,將所有有可能用上的、所有對企業有可能有價值的數據都規劃出來,最終梳理出企業的數據資產目錄。在這個時候不需要考慮有沒有系統、有沒有數據,只需要關注哪些數據是對企業業務有價值的。這一層不建議做得太細,太細就難以形成標準,不能適用於多個場景了。數據治理是數據中臺很重要的一個領域,ThoughtWorks認爲在現在業務邊界消失、需求快速變化的情況下,企業需要具備精益數據治理的能力——Lean Data Governance。傳統的中心化、事前控制式的數據治理方式,要改變爲去中心化、事後服務式的治理方式。

image

  1. 數據資產的獲取和存儲

數據中臺要爲企業提供強大的數據資產的獲取和存儲的能力。

  1. 數據的共享和協作

企業的數據中臺一定是跨域的,需要讓所有的人都知道數據資產目錄在哪裏。不能因爲數據安全,就不讓大家知道企業有什麼數據。沒有共享和開放,數據沒有辦法流動起來,沒有流動的話數據的價值產生的速度就會非常慢。所以在數據安全的基礎上,企業的數據資產目錄要對利益相關者、價值創造者開放,要讓業務人員能夠做到“Self-Service”

  1. 業務價值的探索和分析

數據中臺不僅要建立到源數據的通路,還需要提供分析數據的工具和能力,幫助業務人員去探索和發現數據的業務價值。一個好的數據中臺解決方案中需要針對不同業務崗位的用戶提供個性化的數據探索和分析的工具,並且在此基礎上一鍵生成數據API,以多樣化的方式提供給前臺系統。

  1. 數據服務的構建和治理

數據中臺需要保證數據服務的性能和穩定性,以及數據質量和準確性,還需要具備強大的服務治理能力。數據中臺是一個生態平臺,在數據中臺上面會不斷生長各種數據服務,所以從一開始就構建好數據服務的治理結構是非常重要的,數據服務需要可以被記錄、可被跟蹤、可被審計、可被監控。

  1. 數據服務的度量和運營

如果數據中臺最終只是做到把數據給到業務人員,那它就只是一個搬運工的角色。數據中臺還需要具備度量和運營數據服務的能力,能夠對中臺上提供的數據服務及相關行爲持續跟蹤和記錄,包括哪些數據服務被哪個部門使用、用了多少次等,通過這些去度量每一個數據服務的業務價值。

史凱認爲,數據中臺是一個需要用互聯網思維去經營的利潤中心平臺,數據中臺的經營分析人員需要分析業務,瞭解爲什麼今天上午這個財務部門的人用了數據中臺、調用了十次,下午他不用了,原因是什麼,調用了這些數據服務的人通常還會調用哪些其他的數據服務。這些都需要相應地做記錄、做日誌、做分析,要把數據當做像電商平臺一樣去經營,然後實時地根據這些業務行爲數據去提醒數據服務提供方,調整、改變、優化數據服務,這纔是可經營的數據中臺,也只有這樣業務部門才能得到最快的支持和響應。

爲什麼人人都需要數據中臺?

數據中臺並非只有大公司才需要的高大上的玩意。

ThoughtWorks從2017年到現在,已經幫助多家大型國內外企業建設數據中臺,其中有體量巨大的企業級數據中臺,也有部門級的小數據中臺。

“未來所有的企業核心都會變成加工數據的企業,而數據中臺是數據價值化的加工廠,所以所有的企業都需要數據中臺的能力,數據中臺一定是未來每個企業的標準配置。”

在史凱看來,數據中臺並不意味着“大而全”的數據平臺。根據企業的規模和業務的不同,數據中臺可大可小,規模、複雜度可能都不相同,但它對業務產生的價值是一樣的。

當企業評估自己是否應該建設數據中臺時,應該從哪些方面來考慮?史凱認爲,從戰略角度來說,每個企業都需要建立自己的數據中臺;從戰術角度來說,當企業發現自己的數據開發利用的速度和應用開發的速度不匹配的時候,就需要考慮構建數據中臺。

原來很多企業在做應用系統的時候,什麼都不考慮直接上單體架構,一上來就先做數據庫,然後在上面建應用。ThoughtWorks建議現在的企業,即使不做數據中臺、不去立一個叫做“數據中臺”的項目,但是在做應用的時候,最好把這個應用分成三層,業務層、數據中臺層、源數據層,在一開始做應用的時候就把三個層次抽象出來。

數據質量差所以做不了數據中臺?No!

歷史遺留的數據質量問題經常讓大家對數據的利用和價值產生質疑。2018年,史凱在與不同企業溝通過程中經常聽到的一句話就是,“我們現在還沒有到利用數據這一步,因爲(應用系統中的)數據質量太差”。

每次聽到這句話,史凱腦子裏就好像聽到了另外一句話,“還沒到培養孩子的時候啊,孩子太小了”。

不能因爲數據質量差,就不去利用數據。恰恰是因爲沒有去做後面的事情,所以數據質量才差。而且也不能因爲數據質量差就拋開業務場景、試圖全面解決數據質量的問題,這樣得不到業務部門的支持,也無法從數據工作中產生業務價值。所以ThoughtWorks建議的恰恰是利用做應用、做業務的需求,同步解決數據質量問題。

史凱認爲,數據質量問題,根本上是在構建應用之初缺乏整體數據規劃和數據思維導致的問題。原來的流程類應用構建之初,只考慮瞭如何讓流程跑起來,缺乏對這個應用在整個企業的數據全景圖(Data Landscape)中的定位的分析,沒有從源頭上優化數據的存儲、流轉,從而更好地與其他的系統中的數據去對齊口徑、統一語言,將流程問題抽象成領域模型問題,再將領域模型抽象成數據模型。

建設數據中臺的挑戰及應對策略

建設數據中臺最大的挑戰在於前期能否從業務層面梳理清楚有業務價值的場景,以及數據全景圖,而不僅在於後期的技術建設。

數據中臺建設面臨的挑戰包括:

  • 梳理業務場景:搞清楚數據中臺如何對業務產生價值。

  • 建設數據中臺的優先級策略:需求可能大而全,但我們不能直接建大而全的數據中臺,應該根據業務重要性來排需求的優先級。

  • 數據治理問題:和業務獨立開的數據治理少有成功的,大的數據標準要有(數據資產目錄),通過數據資產目錄將共有的緯度、共性的業務模型提煉出來,在此基礎之上數據治理需要跟業務場景緊密結合。

數據中臺的建設需要兩個戰略耐心

數據中臺是爲了加快從數據到業務價值的產生速度,但是它的生產過程依然是需要時間、有很多複雜的工作要做的,所以對於數據中臺的投資方和數據中臺的建設方來講,都需要對應的戰略耐心。

image

  • 對於投資方來講,要充分認識到數據中臺類項目的價值和侷限性。在現在的組織結構和技術成熟度下,數據中臺依舊是一個技術平臺,對於業務價值的產生是一個加速的過程。但是業務對於數據的需求不會因爲有了數據中臺就減少,數據中臺也不是哆啦A夢,不能隨心所欲地變出各種業務想要的服務。這依然是一個需要統籌規劃、敏捷迭代、演進建設的系統性工程,所以需要要管理好期望,有一定的戰略耐心。

  • 對於建設方來講,要充分認識到數據中臺建設的複雜度,不要操之過急,不要期待畢其功於一役。史凱的建議是要從小中臺做起,圍繞具體有價值的業務場景去建設,儘量不脫離場景去搞週期長、大而全的純工具平臺建設。

數據中臺也可以小而美

建設數據中臺的關鍵考量包括兩方面。

首先數據中臺一定要與業務價值對齊。構建數據中臺,最重要的不是技術,也不是數據質量好不好,而是數據思維和數據文化。數據思維就是要建立起從數據的視角去思考問題的方式;數據文化就是要把數據和業務當成一體去看,而不是隻將數據當作一個支持工具。想清楚業務對於數據的訴求是構建數據中臺的第一步,哪怕暫時不能想的太細,也要去想,想不清楚就先不要做。

不要在業務場景還沒有明確、優先級還不清晰、價值度量體系尚未建立起來的時候,就建立大而全的數據平臺,並且把所有的數據都存起來。企業都是追求投入產出比的,大而全的數據平臺往往會面臨尷尬的局面,一堆功能看上去很有用,應該都能用上,但是缺乏應用場景,真的有了場景,發現也不能開箱即用,還需要衆多的定製化。

其次,數據中臺應該從小數據、小場景做起。

數據中臺是面向場景而非面向技術的,這種與客戶的業務、企業的結構和信息化發展階段有着緊密的相關性的業務基礎架構,是很難買一個大而全的產品來一勞永逸解決的。

可以通過下面這個圖來解釋構建中臺的原則:

image

一開始的時候需要頂層設計,面向業務願景制定中臺的整體規劃,全面的梳理數據創新全景藍圖,這就是上圖左邊的黑色框架部分,通過業務願景驅動出所有的業務場景探索,從而推導出數據中臺的全景架構、技術支撐。

但是在實施的時候,要從具體的業務場景出發。從高價值數據集場景做起,然後順着這個場景豎切,找到數據全景圖中的一個或多個數據集合,從小數據場景落地,這樣才能快速驗證價值。大處思考,全局拉通,避免後續的數據孤島,但是從小數據集切入,從可實現性高的場景啓動。然後一個個的場景做起來,業務價值和中臺能力也就同步建立起來了。

總的來講就是,“設計階段橫着走,落地階段豎着切。”

數據中臺團隊和技術選型

數據中臺團隊通常需要包含以下角色:

  • 業務專家團隊:瞭解業務、梳理業務場景,確定數據資產與業務場景的一一對應關係,確定業務場景的優先級,爲數據中臺的建設提供依據。

  • 數據工程團隊:建設和維護數據中臺,包括ETL、數據採集,以及數據中臺性能和穩定性保證,利用中臺的工具採集、存儲、加工、處理數據。

  • 數據分析團隊:分析數據價值、探索場景,生產更多的數據服務。

  • 數據治理團隊:梳理數據標準、構件數據安全和隱私規範,利用開源去中心化的數據治理工具(比如atlas、wherehows)來圍繞業務場景解決數據質量和安全問題。

  • 智能算法團隊:爲數據分析、業務探索提供智能和算法工具。

而這樣的一個團隊的工作就構成了一個數據生產線,一個從數據到業務服務的數據服務工廠,這個工廠有生產車間(Data Pipeline)、研發中心(數據實驗室)、管理辦公室(數據治理),還有產品展示中心(數據服務商店)。

image

數據工廠是一個邏輯概念,不是一個大而全的產品,ThoughtWorks 結合過去幾年的實踐給出了一個數據工廠組件選型的參考架構,這些推薦的架構和組件,很多都體現在過去 ThoughtWorks 推出的技術雷達中並進行了詳細解釋,如下:

image

數據中臺的出現對於現有數據團隊的挑戰

前面已經提到,數據中臺是企業的Data API工廠,用更高效、更協同的方式加快從數據到業務的價值,能夠給業務提供更高的響應力。所以數據中臺距離業務更近,這對於傳統企業的數據業務來講,是一個重大的變化,同時給原來的數據團隊也會帶來巨大的挑戰。

1.對數據分析人員的業務要求提高了

企業傳統的數據工作和業務工作分工明確、界限清晰,業務人員負責業務需求,提出業務問題,並將業務問題拆解成一個個清晰的數據問題,然後數據工程師和數據分析師在這個清晰的問題下解題。

但是,在數據中臺出現後,數據中臺是一個賦能平臺,它會沉澱、提供很多數據分析工具和數據服務,能夠讓不具備專業數據能力的業務人員也可以進行一些簡單的數據分析,產生業務的洞察。這就意味着在數據中臺的支持下,相對簡單清晰的業務問題會更多的由業務人員自己解決掉,那麼傳遞到專業數據人員的問題,都會是更加複雜的問題。這對於數據人員的業務理解能力就加強了,他/她們必須具備快速理解業務的能力,才能夠體現出專業性和優勢。

2.對於數據人員的工程能力要求提高了

原來的數據分析工作屬於個體工作方式,每一個數據科學家、數據分析師就是一個獨立的工作單元,業務部門給出業務問題,他們通過自己擅長熟悉的工具和方法給出結果。但是在數據中臺出現後,他們一方面獲得了更多數據分析的武器和工具,能夠站在前人的基礎上工作,提高了效率和準確度,另外一方面,他們也需要掌握更多的平臺化的數據分析工具,比如Jupyter Notebook,同時也被要求能夠把自己分析的結果轉化成數據服務,沉澱到中臺。

3.數據團隊需要具備更多的業務視角

原來的數據分析團隊是一個功能型團隊,更多以數據智囊團的身份存在。大部分情況下,距離業務比較遠,更不要提對業務的結果負責。而在數據中臺出現後,數據中臺距離業務會越來越近,甚至直接影響和參與業務的運行,數據團隊將慢慢脫離數據智囊團的身份,逐漸從後臺走向前臺,直接負責一個個數據服務,而這些數據服務是會直接參與到業務當中、產生業務價值的。這樣的定位變化,要求數據團隊具備更多的業務視角,要更關注業務價值,直接對齊企業的業務目標去工作。

所以,數據中臺的出現,不僅是一個技術平臺,它對於企業而言是一個系統化的工作,企業數據相關的流程、職責、分工都要有對應的調整,才能達成整體的目標。

數據中臺 VS 數據隱私

對於數據中臺來說,數據隱私和安全性也是非常重要的問題。可能很多人還記得前些日子馬化騰針對“騰訊數據中臺論”的迴應。去年騰訊組織架構調整進程中實現了技術打通,而對數據打通保持謹慎態度。馬化騰在18年11月的世界互聯網大會上回應“數據中臺論”:“騰訊不能套用很多其他公司的做法,把數據直接去任意打通。因爲在我們的平臺裏面,大量全部都是人和人之間的通信、社交行爲數據,如果說數據可以任意打通,給公司業務部門或者給外部的客戶用,那是會帶來災難性的後果。這方面我們要更加謹慎,我們要從用戶的角度來考慮,把個人信息和數據保護放在優先地位。”很多人將這解讀爲騰訊不做數據中臺,史凱卻不這麼認爲。

在他看來,騰訊的迴應並不是說他們不做數據中臺,而是強調要在數據隱私上做更多的工作。其實所有的數據安全和隱私的保護都需要從場景出發。史凱認爲,“不能從純數據層面來看數據隱私,數據隱私是不能脫離場景的”。如果純粹從數據層面,而不從業務場景層面去管理數據隱私,就會帶來兩方面的問題,要麼數據被管理的非常死,阻礙了業務價值的產生;要麼數據隱私管理就會有漏洞。

史凱舉了一個例子,比如我們講的用戶交易數據,如果不關聯用戶基本信息,交易數據本身對於用戶來說是不具備隱私風險的,因爲它不關聯到任何一個用戶個體。所以,是可以對脫敏後的用戶交易數據進行分析和利用的。

另一方面,如果脫離場景談數據隱私,也可能會導致忽略了潛在的安全問題。有時候如果不把場景關聯起來,可能兩個數據看上去沒有安全問題,但其實外人把這兩個數據關聯起來就產生價值了。這也是爲什麼在一開始的時候就要把所有的場景,儘可能地全部分析出來。

另外,設置權限、數據分級審覈、庫級數據脫敏等都是可以提升數據安全的手段。現代數據中臺必須具備數據調用行爲的監控和記錄機制,反過來也能增強對數據安全和隱私的保護。

數據中臺的下一步

當前國內外已經有不少公司開始投資建設數據中臺,大家比較熟悉的包括阿里、華爲、聯想、海航、上汽、殼牌等。

在史凱看來,數據中臺當前處於上升發展期。雖然未來數據中臺未必還叫做數據中臺,但它一定會成爲企業必備的基礎組件。

世界正在從信息化向數字化發展。信息化是指大部分的工作都在物理世界裏完成,然後用信電腦的數字化世界解決一小部分問題。數字化則是把人從物理世界搬到數字化世界。從這個角度來講,數據中臺將會變成物理世界的業務在數字化世界的一個還原。

數據中臺設計的初衷是將計算與存儲分離,從狹義上來說,真正最核心的數據中臺可以是沒有存儲的。但就當前的情況來看,廣義的數據中臺在未來一段時間內仍會涵蓋數據倉庫、數據湖等存儲組件,“數據工廠”這個概念可能更適用於現在的階段。但隨着數據中臺的發展,未來很有可能不再需要數據湖了。

最後,史凱也提到了阿里中臺戰略中的另一箇中臺——“業務中臺”。他表示“當前業務中臺更偏實時交易,是從上往下沉澱業務;數據中臺目前更偏分析、決策和洞察,爲業務提供T+N和T+0的數據服務,但是再往前走,數據中臺跟交易會慢慢結合得更爲緊密。隨着計算能力越來越強,以及微服務架構的進一步發展,未來業務中臺和數據中臺可能會融爲一體。”

採訪嘉賓

史凱,ThoughtWorks數據和智能總監,精益數據創新體系的提出者,2019年被評選爲DataIQ100的數據賦能者,有近20年年的企業信息化、數字化轉型架構和實施經驗,爲衆多大型客戶提供數字化轉型戰略略規劃和諮詢實施服務。

技術雷達是ThoughtWorks推出的公益的、不限行業的技術選型趨勢報告,至今已堅持十年,旨在以雷達的表現形式,通過清晰的解讀,給技術人員提供高質量、落地性強的技術平臺、工具框架方面的選型指導,助力企業數字化轉型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章