官术网_书友最值得收藏!

前言

試著回想你上一次在社交媒體平臺(tái)上搜索某個(gè)人的時(shí)候。

你會(huì)去看結(jié)果頁(yè)上的什么內(nèi)容呢?

最可能的是,你從個(gè)人信息結(jié)果列表的名字開(kāi)始看。然后可能大部分的時(shí)間都花在探究“共同好友”部分,從而回憶起自己是如何認(rèn)識(shí)某人的。

我們?cè)谏缃幻襟w上探究共同好友的人類本能行為,啟發(fā)我倆寫了這本書(shū)。盡管初衷一致,我們寫這本書(shū)的原因卻不盡相同。

首先,你是否停下來(lái)思考過(guò),應(yīng)用程序里的“共同好友”部分是如何生成的?

作為被要求交付搜索結(jié)果頁(yè)里的“共同好友”模塊的工程師,他們需要?jiǎng)?chuàng)建一個(gè)錯(cuò)綜復(fù)雜的工具和數(shù)據(jù)的合集來(lái)解決這個(gè)極其復(fù)雜的分布式問(wèn)題。我們其中一個(gè)做過(guò)這些功能,另一個(gè)寫過(guò)用來(lái)交付它們的工具。我們熱衷于從我們的共同經(jīng)驗(yàn)中理解和教導(dǎo)他人,這是我們合著此書(shū)的第一個(gè)原因。

其次,第二個(gè)原因在于,任何使用社交媒體的人都會(huì)憑直覺(jué)直接從“共享好友”部分推理出一個(gè)人的背景。這種推理和思考數(shù)據(jù)內(nèi)部關(guān)系的過(guò)程被我們稱為圖思維,這就是我們所說(shuō)的人類通過(guò)關(guān)聯(lián)數(shù)據(jù)來(lái)理解生活的方式。

我們都是如何習(xí)得這個(gè)技能的呢?

并沒(méi)有一個(gè)明確的時(shí)間點(diǎn)標(biāo)識(shí)著我們學(xué)會(huì)了該技能。處理人物、地點(diǎn)、事物之間的關(guān)系就是我們的思考方式本身。

無(wú)論是在現(xiàn)實(shí)生活中還是在數(shù)據(jù)中,人們都能輕松地從關(guān)系中推斷出背景,這也是圖思維浪潮興起的根源。

而當(dāng)談到對(duì)圖思維的理解時(shí),人們大致分成兩個(gè)陣營(yíng):一邊認(rèn)為圖(graph)只意味著條形圖;另外一邊則認(rèn)為圖表之類的過(guò)于復(fù)雜。不管是哪一種,這些思維過(guò)程都應(yīng)用了傳統(tǒng)的方法來(lái)思考數(shù)據(jù)和技術(shù)。但問(wèn)題是局勢(shì)已變,工具已經(jīng)進(jìn)化,有新的知識(shí)等著你學(xué)習(xí)。

我們相信,圖是強(qiáng)大的、可部署的。圖技術(shù)可以使你的工作效率更高——我們?cè)?jīng)合作過(guò)的一些團(tuán)隊(duì)如是說(shuō)。

本書(shū)將這兩種思維方式結(jié)合起來(lái)。

圖思維縮小了人類日常生活與使用數(shù)據(jù)做決策之間的差距。想象一下,把整個(gè)世界看成一個(gè)帶有行和列的電子表格,并試圖使其全部合理化。對(duì)于大多數(shù)人來(lái)說(shuō),這種做法不自然,而且會(huì)適得其反。

這是因?yàn)槿藗兪峭ㄟ^(guò)關(guān)系來(lái)駕馭和理解生活的。計(jì)算機(jī)才需要數(shù)據(jù)庫(kù),并且只能在行列數(shù)據(jù)的世界中運(yùn)行。

圖思維是一種通過(guò)以關(guān)系為中心的方法來(lái)解決復(fù)雜問(wèn)題的方法。圖技術(shù)彌補(bǔ)了“關(guān)系”與現(xiàn)代計(jì)算機(jī)基礎(chǔ)設(shè)施的線性內(nèi)存限制之間的差距。

隨著越來(lái)越多的人通過(guò)應(yīng)用圖思維來(lái)學(xué)習(xí)如何使用圖技術(shù)進(jìn)行構(gòu)建,你可以想象下一波創(chuàng)新將帶來(lái)什么。

本書(shū)的目標(biāo)讀者

本書(shū)旨在教會(huì)讀者兩件事。首先,通過(guò)提出問(wèn)題和推理數(shù)據(jù),教會(huì)讀者形成圖思維。其次,我們將帶讀者學(xué)會(huì)用代碼解決最常見(jiàn)的復(fù)雜圖問(wèn)題。

這些新概念通常與需要跨多個(gè)不同工程部門執(zhí)行的任務(wù)交織在一起。

數(shù)據(jù)工程師和架構(gòu)師是將想法從開(kāi)發(fā)轉(zhuǎn)變?yōu)樯a(chǎn)的核心。我們編寫本書(shū)旨在向讀者展示如何使用圖數(shù)據(jù)和圖工具解決從開(kāi)發(fā)到生產(chǎn)過(guò)程中可能出現(xiàn)的常見(jiàn)假設(shè)。對(duì)數(shù)據(jù)工程師或數(shù)據(jù)架構(gòu)師來(lái)說(shuō),另一個(gè)好處是可以通過(guò)理解圖思維來(lái)獲悉世界上更多的可能性。對(duì)用圖數(shù)據(jù)解決的各種問(wèn)題進(jìn)行綜合有助于打造新的模式,以在生產(chǎn)應(yīng)用程序時(shí)使用。

數(shù)據(jù)科學(xué)家和數(shù)據(jù)分析師可能最受益于推理如何使用圖數(shù)據(jù)來(lái)回答有趣的問(wèn)題。本書(shū)中的所有示例都是為了將查詢優(yōu)先的理念應(yīng)用于圖數(shù)據(jù)而構(gòu)建的。數(shù)據(jù)科學(xué)家或分析師的另外的好處是了解在生產(chǎn)應(yīng)用程序中使用分布式圖數(shù)據(jù)的復(fù)雜性。在本書(shū)中,我們將講解常見(jiàn)的開(kāi)發(fā)陷阱及其在生產(chǎn)環(huán)境中的解決過(guò)程,以便可以構(gòu)想出新類型的問(wèn)題來(lái)解決。

計(jì)算機(jī)科學(xué)家將學(xué)習(xí)如何使用函數(shù)式編程和分布式系統(tǒng)中的技術(shù)來(lái)查詢和推理圖數(shù)據(jù)。

我們將概述程序遍歷圖數(shù)據(jù)的基本方法,并使用圖工具逐步介紹它們的應(yīng)用。在此過(guò)程中,我們還將介紹分布式技術(shù)。

我們將關(guān)注圖數(shù)據(jù)和分布式復(fù)雜問(wèn)題的交叉領(lǐng)域,這是一個(gè)任何技術(shù)人員都想要學(xué)習(xí)的熱門工程話題。

本書(shū)目標(biāo)

本書(shū)的第一個(gè)目標(biāo)是,使用圖論、數(shù)據(jù)庫(kù)模式、分布式系統(tǒng)、數(shù)據(jù)分析和許多其他領(lǐng)域的概念,以獨(dú)特的交集形成我們?cè)诒緯?shū)中所說(shuō)的圖思維。一個(gè)新的應(yīng)用領(lǐng)域需要新的術(shù)語(yǔ)、示例和技術(shù)。本書(shū)是讀者理解這一新興領(lǐng)域的基礎(chǔ)。

在過(guò)去十年的圖技術(shù)中,出現(xiàn)了一系列在生產(chǎn)系統(tǒng)中使用圖數(shù)據(jù)的通用模式。本書(shū)的第二個(gè)目標(biāo)就是教會(huì)讀者這些模式。我們將定義、說(shuō)明、構(gòu)建和實(shí)施團(tuán)隊(duì)使用圖技術(shù)解決復(fù)雜問(wèn)題的最流行方式。學(xué)完本書(shū)后,讀者將擁有一套使用圖技術(shù)構(gòu)建的解決常見(jiàn)問(wèn)題的模板。

本書(shū)的第三個(gè)目標(biāo)是改變讀者的思維方式。理解圖數(shù)據(jù)并將其應(yīng)用于自己的問(wèn)題,會(huì)使思維過(guò)程發(fā)生范式轉(zhuǎn)變。我們將通過(guò)大量示例讓讀者了解其他人在應(yīng)用程序中思考和解釋圖數(shù)據(jù)的常見(jiàn)方式,幫助讀者學(xué)會(huì)把圖思維應(yīng)用到技術(shù)決策中。

本書(shū)主要內(nèi)容

本書(shū)大致由以下內(nèi)容組成:

●第1章討論圖思維并提供將其應(yīng)用于復(fù)雜問(wèn)題的詳細(xì)過(guò)程。

●第2章和第3章介紹將在后續(xù)各章中使用的基本圖概念。

●第4章和第5章應(yīng)用圖思維和分布式圖技術(shù)構(gòu)建C360銀行應(yīng)用程序,這是現(xiàn)如今最流行的圖數(shù)據(jù)用例。

●第6章和第7章通過(guò)電信行業(yè)用例介紹分層數(shù)據(jù)和嵌套圖數(shù)據(jù)。第6章為第7章解決的常見(jiàn)問(wèn)題奠定了基礎(chǔ)。

●第8章和第9章通過(guò)示例詳細(xì)討論跨圖數(shù)據(jù)的路徑查找,該示例通過(guò)路徑量化社交網(wǎng)絡(luò)中的信任。

●第10章和第12章教讀者使用圖數(shù)據(jù)的協(xié)同過(guò)濾來(lái)設(shè)計(jì)一個(gè)受Netflix啟發(fā)的推薦系統(tǒng)。

●第11章是一章補(bǔ)充內(nèi)容,說(shuō)明如何將實(shí)體解析應(yīng)用于多個(gè)數(shù)據(jù)集的合并,從而在一個(gè)大圖中進(jìn)行集體分析。

除第1、11章外,每?jī)烧拢ǖ?章和第5章,第6章和第7章,第8章和第9章,第10章和第12章)都遵循相同的結(jié)構(gòu)。每組中的前一章介紹開(kāi)發(fā)環(huán)境中的新概念和新示例,后一章深入探討實(shí)際部署需要解決的生產(chǎn)細(xì)節(jié)問(wèn)題,例如性能和可擴(kuò)展性。

排版約定

本書(shū)中使用以下排版約定:

斜體(Italic

表示新的術(shù)語(yǔ)、URL、電子郵件地址、文件名和文件擴(kuò)展名。

等寬字體(Constant width)

用于程序清單,以及段落中的程序元素,例如變量名、函數(shù)名、數(shù)據(jù)庫(kù)、數(shù)據(jù)類型、環(huán)境變量、語(yǔ)句以及關(guān)鍵字。

等寬粗體(Constant width bold

表示應(yīng)該由用戶輸入的命令或其他文本。

等寬斜體(Constant width italic

表示應(yīng)由用戶提供的值或由上下文確定的值替換的文本。

該圖示表示提示或建議。

該圖示表示一般性說(shuō)明。

該圖示表示警告或注意。

示例代碼

可以從https://github.com/datastax/graph-book下載補(bǔ)充材料(示例代碼、練習(xí)、勘誤等)。

你也可以在推特上關(guān)注我們:https://twitter.com/Graph_Thinking

這里的代碼是為了幫助你更好地理解本書(shū)的內(nèi)容。通常,可以在程序或文檔中使用本書(shū)中的代碼,而不需要聯(lián)系O'Reilly獲得許可,除非需要大段地復(fù)制代碼。例如,使用本書(shū)中所提供的幾個(gè)代碼片段來(lái)編寫一個(gè)程序不需要得到我們的許可,但銷售或發(fā)布本書(shū)的示例代碼則需要獲得許可。引用本書(shū)的示例代碼來(lái)回答問(wèn)題也不需要許可,將本書(shū)中的很大一部分示例代碼放到自己的產(chǎn)品文檔中則需要獲得許可。

非常歡迎讀者使用本書(shū)中的代碼,希望(但不強(qiáng)制)注明出處。注明出處時(shí)包含書(shū)名、作者、出版社和ISBN,例如:

The Practitioner's Guide to Graph Data,作者Denise Koessler Gosnell和Matthias Broecheler,由O'Reilly出版,書(shū)號(hào)978-1-492-04407-9。

如果讀者覺(jué)得對(duì)示例代碼的使用超出了上面所給出的許可范圍,歡迎通過(guò)permissions@oreilly.com聯(lián)系我們。

O'Reilly在線學(xué)習(xí)平臺(tái)(O'Reilly Online Learning)

40多年來(lái),O'Reilly Media致力于提供技術(shù)和商業(yè)培訓(xùn)、知識(shí)和卓越見(jiàn)解,來(lái)幫助眾多公司取得成功。

我們擁有獨(dú)一無(wú)二的專家和革新者組成的龐大網(wǎng)絡(luò),他們通過(guò)圖書(shū)、文章、會(huì)議和我們的在線學(xué)習(xí)平臺(tái)分享他們的知識(shí)和經(jīng)驗(yàn)。O'Reilly的在線學(xué)習(xí)平臺(tái)允許你按需訪問(wèn)現(xiàn)場(chǎng)培訓(xùn)課程、深入的學(xué)習(xí)路徑、交互式編程環(huán)境,以及O'Reilly和200多家其他出版商提供的大量文本和視頻資源。有關(guān)的更多信息,請(qǐng)?jiān)L問(wèn)http://oreilly.com

如何聯(lián)系我們

對(duì)于本書(shū),如果有任何意見(jiàn)或疑問(wèn),請(qǐng)按照以下地址聯(lián)系本書(shū)出版商。

美國(guó):

O'Reilly Media,Inc.

1005 Gravenstein Highway North

Sebastopol,CA 95472

中國(guó):

北京市西城區(qū)西直門南大街2號(hào)成銘大廈C座807室(100035)

奧萊利技術(shù)咨詢(北京)有限公司

要詢問(wèn)技術(shù)問(wèn)題或?qū)Ρ緯?shū)提出建議,請(qǐng)發(fā)送電子郵件至errata@oreilly.com.cn

本書(shū)配套網(wǎng)站http://www.oreilly.com/catalog/9781492044079上列出了勘誤表、示例以及其他信息。

關(guān)于書(shū)籍、課程、會(huì)議和新聞的更多信息,請(qǐng)?jiān)L問(wèn)我們的網(wǎng)站http://www.oreilly.com

我們?cè)贔acebook上的地址:http://facebook.com/oreilly

我們?cè)赥witter上的地址:http://twitter.com/oreillymedia

我們?cè)赮ouTube上的地址:http://www.youtube.com/oreillymedia

致謝

我們要感謝一群了不起的人,他們貢獻(xiàn)了時(shí)間和專業(yè)知識(shí)來(lái)為我們提供建議以改進(jìn)本書(shū)。

我們非常榮幸能與Jeff Bleiel領(lǐng)導(dǎo)的世界級(jí)編輯團(tuán)隊(duì)合作。我們的技術(shù)編輯團(tuán)隊(duì)Alexey Ott、Lorina Poland和Daniel Kuppitz運(yùn)用了他們?cè)趧?chuàng)建、構(gòu)建和撰寫圖技術(shù)方面的豐富經(jīng)驗(yàn),直接將本書(shū)提升到了只有在他們的幫助下才能達(dá)到的水平。我們十分感謝他們?yōu)樘岣弑緯?shū)的質(zhì)量和正確性所做的努力。

我們還要感謝DataStax支持和鼓勵(lì)我們合作創(chuàng)作本書(shū)。我們非常感謝DataStax Graph Engineering團(tuán)隊(duì)成員的支持和審閱,以及他們?cè)谖覀児餐瑒?chuàng)作時(shí)所做的產(chǎn)品更改:Eduard Tudenhoefner、Dan LaRocque、Justin Chu、Rocco Varela、Ulises Cervi?o Beresi、Stephen Mallette和Jeremiah Jordan。我們特別感謝Bryn Cooke,他協(xié)調(diào)并實(shí)施了大量的額外工作來(lái)支持本書(shū)中的想法。

還有其他許多人抽出時(shí)間來(lái)支持我們,所做的事情遠(yuǎn)遠(yuǎn)超過(guò)了他們的本職工作,就像DataStax一樣。我們要感謝Dave Bechberger、Jonathan Lacefield和Jonathan Ellis對(duì)本書(shū)的專業(yè)貢獻(xiàn)和推廣。感謝Daniel Farrell、Jeremy Hanna、Kiyu Gabriel、Jeff Carpenter、Patrick McFadin、Peyton Casper、Matt Atwater、Paras Mehra、Kelly Mondor和Jim Hatcher:在整個(gè)創(chuàng)作過(guò)程中,我們的對(duì)話產(chǎn)生的影響比想象中的要大得多。

本書(shū)中所有的故事和示例都受到了我們與世界各地同事的合作和經(jīng)驗(yàn)的啟發(fā)。為此,我們想感謝與我們交談并幫助塑造本書(shū)敘述的圖英雄:Matt Aldridge、Christine Antonsen、David Boggess、Sean Brandt、Vamsi Duvvuri、Ilia Epifanov、Amy Hodler、Adam Judelson、Joe Koessler、Eric Koester、Alec Macrae、Patrick Planchamp、Gary Richardson、Kristin Stone、Samantha Tracht、Laurent Weichberger和Brent Woosley。與他們每個(gè)人交談和分享的信息都融入了我們有幸在本書(shū)中分享的故事。感謝他們的意見(jiàn)、經(jīng)驗(yàn)和想法。

Denise還想向那些在本書(shū)寫作過(guò)程中指導(dǎo)過(guò)她的人表達(dá)她個(gè)人的謝意:“感謝Teresa Haynes和Debra Knisley,是你們點(diǎn)燃了我對(duì)圖論的熱情,這種熱情每天都在驅(qū)動(dòng)著我,沒(méi)有你們,我就不會(huì)開(kāi)始這段旅程。感謝Mike Berry,是你教會(huì)了我如何完成工作,以及如何永無(wú)止境地追尋下一個(gè)偉大設(shè)想。感謝Ted Tanner,是你打開(kāi)了一扇門,向我展示了什么是匠心打造和卓越交付——時(shí)機(jī)和執(zhí)行就是一切。感謝Mike Canzoneri,是你臨門一腳才有了這本書(shū)。最重要的是感謝Ty——這位非官方的‘第三作者’,你伴隨我走過(guò)了每一步,感謝你永無(wú)止境的積極性。”

主站蜘蛛池模板: 榆社县| 龙游县| 霍州市| 隆子县| 延川县| 隆安县| 江西省| 定远县| 即墨市| 襄城县| 全南县| 新巴尔虎右旗| 浮梁县| 星子县| 海林市| 文安县| 色达县| 年辖:市辖区| 吉木萨尔县| 乐昌市| 博白县| 上饶县| 金寨县| 巧家县| 旺苍县| 河池市| 新乡市| 屏山县| 靖江市| 铜陵市| 盘锦市| 章丘市| 莒南县| 永德县| 休宁县| 绩溪县| 华安县| 南康市| 于都县| 龙胜| 民县|