執行MySQL出現ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)錯誤
- mysqld --install
- net start mysql
MySQL Cluster 之 Data Nodes 與 Node Groups 之間的關係
- number of node groups = number of data nodes / NoOfReplicas
換句話說,你沒有辦法直接對node groups的數量進行設定,它取決於data nodes的數量和NoOfReplicas這兩個參數。
例如:
假設data nodes = 4
NoOfReplicas = 1 , node groups = 4
NoOfReplicas = 2 , node groups = 2
NoOfReplicas = 4 , node groups = 1
data nodes的數量最好是偶數,才能被平均分配到每個group當中。
MongoDB REST Interface
MongoDB provides rest interface for basic observation of server status. The URL for rest interface is "port+1000".
For example, if you specify the mongodb port with 10000, the rest interface URL will be http://localhost:11000.
For example, if you specify the mongodb port with 10000, the rest interface URL will be http://localhost:11000.
MongoDB Admin UI Tool
有一些工具是用Web-based來管理,但是這些工具必須要綁web server,不是很喜歡;如果為了跨平台的需求,可以試試看JMongoBrowser,這是用Java寫成的,支援Linux、Windows、MacOS。
Multi-Tenant Data Architecture 分享 (多租戶的資料設計架構) part1
- 什麼是多租戶(Multi-Tenant)?
CRUD (Create, Read, Update, Delete) - 對於資料庫操作的四大基本功能
- Create (INSERT)
- Read (SELECT)
- Update (UPDATE)
- Delete (DELETE)
Google Square - Google又一力作,把網路變成一個巨型資料庫!

今天在Google Labs看到一個新的服務叫做-Google Squared。一用之下覺得真是驚為天人,讓我們看下去。
Google Squared主要的核心概念是「把網際網路視為一個廣大的資料庫,嘗試把非結構(unstructured)資料以結構化(Structured)的方式呈現」。聽起來沒什麼嗎?其實這是相當困難且偉大的一件事。不過剛開始我們先不講detail的核心概念,先來看看Google Squared怎麼用吧。Google Squared首頁:

我們在搜尋框中打入「camera」

你可以看到Google Squared把資料以「表格(table)」的方式呈現。你可以看到Google Squared列出了許多不同廠牌的camera,並且列出了camera可能擁有的屬性,像是描述(Description)、價錢(Price)等等。如果你覺得有哪一個屬性是你不關心的,在每個屬性旁邊都有一個「X」可以移除:

如果你還想要觀察別的屬性,最右邊有一個「Add」的功能,可以新增自己另外的屬性,他會列出一些Google推薦的屬性,像這裡有Design、Manufacture...等等,並且會自動更新屬性的內容值。

如果這還不夠厲害,那你可以輸入自己想要觀察的屬性,像這裡我新增了「Brand」和「Height」,Google Squared會自動根據你輸入的屬性去抓取相關的資料回來,而且結果還蠻準的!

當然,根據不同的搜尋項目會有不同的屬性,像我這邊搜尋「dog」,就會跑出不同的種類的狗:

當然,準確率不可能百分之百,但是別擔心,Google Squared允許使用者一起幫忙修改搜尋結果,讓準確率更高。如果該欄位有「Other values」,不要客氣就點下去吧:

點下去之後可以看到有其他的選項可以選擇:

你也可以把搜尋的結果儲存起來:

不過目前Google Squared對於中文的支援不是太好,期待將來可以把中文的功能也建立起來。
好了,大致上的功能就是這樣,其實這背後藏著很深的意義,讓我們來談談看。首先,我們必須要知道,網路上的資訊和網頁實在太多了,要如何從這茫茫網海中找出兩個物件之間的關係(Relationship between two objects)是多麼困難的一件事情,講得白話一點,「你怎麼知道這個數字是camera的price,還是weight」?
當你接收到一個網頁的資訊,你怎麼知道這個網頁的哪個區塊是有關camera的?這個牽涉到「瞭解網頁(Webpage Understanding)」的議題(By the way,我不確定Google Squared這個服務的背後是不是使用這樣的概念,不過勢必是有相關連的)。這和我之前看到的一系列paper很有相關,有興趣的人不妨可以看一下
當你接收到一個網頁的資訊,你怎麼知道這個網頁的哪個區塊是有關camera的?這個牽涉到「瞭解網頁(Webpage Understanding)」的議題(By the way,我不確定Google Squared這個服務的背後是不是使用這樣的概念,不過勢必是有相關連的)。這和我之前看到的一系列paper很有相關,有興趣的人不妨可以看一下
Webpage Understanding - beyond page level search
Webpage understanding an integrated approach
這兩篇paper都是微軟亞洲研究院(MSRA)所publish的,也都有投稿在相當好的conference。這兩篇paper的主要和核心概念就是「將一個網頁切割成不同的區塊,並且給定每個區塊一個有意義的名稱」。舉個簡單的例子好了,下面這張圖是Amazon網站上的資訊,假設這是一個網頁,那我們可以把網頁分隔出我們想要的資訊,並且給定一個有意義的名稱:

結果可能會長這樣(細節這裡不多談,有興趣的可以參考上面那兩篇paper,或是留言互相討論:D):

這樣的方式如果可以自動化、程式化,不就可以自動去抓取網路上的資訊了嗎?當然這和語意網路(Semantic Web)也脫離不了關係。要如何從網際網路尚非結構化的資料建構成一個巨型的ontology,找出物件和物件之間的關係,真正建出一個「智慧」的搜尋引擎。在Google Squared中,也許結果不是百分之百的精準,甚至只有70%、50%,不過已經可以看出未來網路的雛型了。從Google Labs所推出來的眾多「beta」服務,都看得出來Google正在拼拼圖,每一塊拼圖都會成為未來網路世界的雛型。
讓我們拭目以待。
【相關閱讀】
Want a More Organized Search Results? Google Square It
Google Squared is Live: Who Knew Structured Data Could Be So Unhelpful?
Google Squared: Your Search Results in Spreadsheet Form
Google Squared, the 'Wolfram Alpha killer's is LIVE! Our initial thoughts.
Top 10 Alternative Search Engine of 2008 (下)
【6】Mendar
Mendar是一個針對醫療領域所開發的搜尋引擎。針對不同的關鍵字,他會根據wiki、醫療資料庫、網站等等內容回傳相關的資訊。

【7】Quintura
Quintura是建立在Tag為基礎的搜尋引擎。一般的搜尋大概都是打入關鍵字,然後顯示搜尋結果,但Quintura利用雙維度的方式還來改善搜尋的結果。簡單來說,你一進到Quintura的畫面,除了一個常見的搜尋框外,還會看到左邊有許多的tag cloud。從下面這張圖可以看出兩著的差異:

當你打入一個關鍵字後,按下搜尋,Quintura會自動顯示和該關鍵字相關的tags,接著你再點相關的tag,就可以進行更精確的搜尋。
另外,你也可以自行增加或刪除相關及不相關的tags。
【8】SeeqPod
從字面上大概可以猜到這個搜尋引擎主要foucs在哪方面。沒錯,SeeqPod主要是針對影音方面做搜尋,尤其是在音樂上。另外,他針對Smart Phone做了很大幅度的支援,也就是你可以安裝該服務在你的smart phone上使用。

【9】Surf Canyon

Surf Canyon也是需要安裝一個套件到瀏覽器中,主要的功能是他會根據你所點選的連結來重新排序搜尋的結果。比如說你的搜尋結果有1000筆,假設你點了第八筆資料,Surf Canyon自動判斷第300筆資料可能也是你想要的,他就會把那一筆資料排在前面的位置。

另外,當你按了下一頁的按鈕時,他會把下一頁的結果直接呈現在該頁下方。
其實這種瀏覽方式就有點智慧搜尋的感覺,這和Google所強調的理念有些許的不同。因為Google的理念就是提供最強大的搜尋引擎,接著就把支配權給了你,在搜尋的過程中儘量不要干擾使用者。不過誰好誰壞還需要時間來做驗證。【10】Taggalaxy.de
我必須說Taggalaxy.de是我測試到現在最炫的搜尋引擎。這是一個德國大學生所寫的一個project,事實上該名稱也很確實的反應了"德國(de)"和他的特色(Tag + galaxy)。Taggalaxy.de是針對flickr所寫的一個搜尋引擎,你打入關鍵字後,他會用類似銀河行星的方式來列出相關的tag,接著選擇相關的"星球"後,他就會利用flickr api來回傳搜尋的結果,顯示照片的方式也很炫,你會看到照片用"飛"的貼到該星球上。


點選某張圖片就會顯示出該圖片的詳細資訊,也可以直接連到flickr的原始頁面。

呼,寫完十個具有相當特色的Seach Engine之後,老實講很難說哪個會威脅到Google,人人有機會、個個沒把握,除了酷炫的外在之外,還必須要有非常強大的內裡才行。我想就算短時間內不會威脅到Google的霸業,在一家獨大的情況下,多點應用總是會讓老大哥產生警覺心,進而不斷改進自己的服務與技術(我猜如果其中有哪個做起來了,在還沒有壯大之前應該就會被Google買走),最後受惠的還是使用者吧!
The Claremont Report on Database Research - (2)

今天的Advanced DB course老師把這篇Technical Report重新review了一次,順便提到了幾個在database area的big guys.
說真的我對database area研究不深,認識的大人物也沒有幾個,從這篇report中認出來的來勉強也只有Tim O'Reilly而已,既然要研究這方面的問題,就來看看這些"Big Guys"的來頭吧!
【Michael Stonebraker】
【Hector Garcia-Molina】
He currently serves on the Technical Advisory Board of DoCoMo Labs USA and Yahoo! Search & Marketplace. He is a Venture Advisor for Diamondhead Ventures and is a member of the Board of Directors of Oracle Corporation and Kintera.
Hector Garcia-Molina at Stanford
Hector Garcia-Molina at Wikipedia
說真的我對database area研究不深,認識的大人物也沒有幾個,從這篇report中認出來的來勉強也只有Tim O'Reilly而已,既然要研究這方面的問題,就來看看這些"Big Guys"的來頭吧!
【Michael Stonebraker】
Michael Stonebraker目前是MIT的教授,之前在University of California, Berkeley任教長達25年。He is also the founder of Ingres, Illustra, Cohera, StreamBase Systems and Vertica and was previously the CTO of Informix. He is also an editor for the book Readings in Database Systems.
這位Stonebraker大師對於relational database有相當程度的貢獻。他發明了Ingres(全名是 INteractive Graphics REtrieval System)這個open source relaional DBMS.和其他多個DBMS.
Michael Stonebraker at MIT
Michael Stonebraker at Wikipedia這位Stonebraker大師對於relational database有相當程度的貢獻。他發明了Ingres(全名是 INteractive Graphics REtrieval System)這個open source relaional DBMS.和其他多個DBMS.
Michael Stonebraker at MIT
【Hector Garcia-Molina】
He currently serves on the Technical Advisory Board of DoCoMo Labs USA and Yahoo! Search & Marketplace. He is a Venture Advisor for Diamondhead Ventures and is a member of the Board of Directors of Oracle Corporation and Kintera.
Hector Garcia-Molina at Stanford
Hector Garcia-Molina at Wikipedia
Normalization
資料庫正規化的目的在於減少重複的欄位,避免不正常的情況產生,進而增加效率。(Database Normalization is a technique for designing relational database tables to minimize duplication of information and, in so doing, to safeguard the database against certain types of logical or structural problems, namely data anomalies.)
First normal form
First normal form is that it does not allow duplicate rows or nulls. A table with unique key and without any nullable columns is in 1NF.
Second normal from
- Must in 1NF
- No Partial Dependency (Non-Primary Attributes have to full funtional dependency to primary key)
- In simple terms, a table is 2NF if it is in 1NF and all fields are dependent on the whole of the primary key, or a relation is in 2NF if it is in 1NF and every non-key attribute is fully dependent on each candidate key of the relation.
Third normal form
- Must in 2NF
- Every non-prime attribute of R is non-transitively dependent on every key of R. (i.e. Do not have X->Y, Y->Z , then X->Z)
First normal form
First normal form is that it does not allow duplicate rows or nulls. A table with unique key and without any nullable columns is in 1NF.
Second normal from
- Must in 1NF
- No Partial Dependency (Non-Primary Attributes have to full funtional dependency to primary key)
- In simple terms, a table is 2NF if it is in 1NF and all fields are dependent on the whole of the primary key, or a relation is in 2NF if it is in 1NF and every non-key attribute is fully dependent on each candidate key of the relation.
Third normal form
- Must in 2NF
- Every non-prime attribute of R is non-transitively dependent on every key of R. (i.e. Do not have X->Y, Y->Z , then X->Z)
The Claremont Report on Database Research
New Database Engine Architecture
主要是提到因為Relational Database Management Systems有一些缺點。像是在處理media和merging的混合型資料時,效能低落;另外,因為目前硬體環境的大幅進步,所以文中也建議資料庫的整體設計必須要開創一個新的局面,也就是要設計出可以完美利用multi-core processors和large memory的引擎。
Declarative Programming Languages
首先,我對於什麼是Declarative Programming Language並不清楚,不過文中提到了一個發展的新趨勢,也就是Map Reduce。Map-Reduce是一個由Google所提出的framework,主要的核心概念是parallel computing,用在處理相當大量的資料上有顯著的成果。
The Interplay of structured and unstructured data
因為網際網路的發展快速,加上Web 2.0概念的興起,資料量有了爆炸性的成長。要如何從這些錯綜複雜的異質性(heterogeneous)資料裡面,找出有用的資訊,甚至是發展一套全新的Mining Technic來extract都是可以思考的方向。
Cloud data services
Cloud Computing是最近很火紅的名詞。也因為這樣新的架構的提出,造成了data management architecture的改變,相關的議題還有Grid Computing,也是用在處理大量的資料。我覺得這和上一個觀點可以互相結合,以往由特定幾個大企業提供服務和資訊的時代已經過去了,現今的趨勢已經從企業端轉移到客戶端(Enterprise to Client),不管是資料量的成長和專業及非專業工作者的數量上都和過去有顯著的不同,以往可能需要特定專業的知識才能使用資料庫,但未來的趨勢一定會朝向人人都可以建立自己的資料庫,並且根據不同的用途,會有不同的資料庫被建立起來(像是管理家人三餐的資料庫、每個家人健康狀況的資料庫等等)。這也意味者資料庫的用途將不再侷限在大型企業用來儲存和處理大量的資料上,而要如何將這些分散各地的資料整合起來,從中挖掘出有意義的資訊,就是很好的研究方向吧!
Mobile and Virtual World
最後一個論點提到了Mobile裝置的普及和虛擬世界的現象。未來的移動式裝置勢必會有更加爆炸性的成長,我們可以根據不同的users在不同的時空環境下,提供適當的資訊。比如說:當衛星偵測到使用者正在台北火車站週遭逛街時,可以即時提供附近商家的折扣資訊或活動訊息。甚至我還想到,如果能夠進一步整合人體感知裝置,感應目前人體的內心情緒,分析出這個人目前想要購買的商品或是用餐的種類、環境、地點等等,就可以提供更加精準的資訊或廣告。但是要達到這樣的目的,除了必須要有人工智慧的相關分析外,還要有相當快速且即時的分析系統和運算能力,另外就是快速的無線網路了。有良好的資訊基礎建設的支持,才會創造美好的使用者經驗(User Experience)。
這篇文章的最後也公佈了近20年來討論過的議題:
相關討論:The Claremont Database Research Self-Assessment Meeting
Mark Logic CEO Blog
