老师发了微信发的文件怎么解压在群里我解压后模型打不开,他用的是14版本,我用的是12版本的,该怎么办?

首先要感謝一下各位讀者…前兩篇刊出後, 瀏覽人數直線上升, 兩天下來瀏覽人次直接衝過3000人…小弟還是第一次看到這麼多閱讀量, 著實高興了一下, 希望之後大家還會對我的捧場一下囉(偷打廣告XD), 在此先謝過大家囉. 不過有些讀者看完第二篇之後覺得太深奧了, 還有人說好像在看排隊理論的論文, 不太想看下去, 這這…好吧, 這第三篇我直接下猛藥. 本篇的重點在於

1. 數據顯示, (瞬間平均)下載速度最快是出現在BT檔發佈後的第50小時!!!

2. 數據顯示, 在BT中, 上傳的量越多, 下載速度反而比較慢!!!

3. 數據顯示, 同時開多個BT下載, 下載速度不會變慢!!!

有沒有比較想往下看了呢? XD

回到正題. 前面兩篇已經分別敘述過和, 那麼這一篇還有什麼好寫的呢? 不曉得大家有沒有發現, 前面在數學論證部分只有純理論的推導. 胡適不是說過:』大膽假設, 小心求證』嗎? 沒有數據驗證, 純理論推導似乎也只是空談. 我們就來看看另外一篇paper, 根據它的數學模型與實際觀測出來的結果. 這篇paper是幾個大陸人聯合觀測與驗證的結果, 篇名叫

這篇paper首先觀察了使用者加入BT的狀況, 是一個標準的指數分配:

綠色的線是實際觀測到的新加入者隨著時間遞減的情形, 藍色的直線是一個指數分配的走向, 可以視為預測值. 看起來預測的值相當接近實際值. 另外, 大家不要看那個好像是一直線, 注意一下y軸, 那個刻度可是1, 100, 10, 1人喔, 所以遞減的速度是很驚人的.

把這個人數遞減預測值套到先前的公式, 可以預測到種子與下載者的人數變化

黑色虛線是預測值, 紅色是實際觀測箌的下載者人數變化,綠色則是觀測到的種子數變化.

從這幾個圖看來, 預測值跟實際觀測值都蠻接近的. 可以證明前一篇的理論大致上是正確的. 恏了, 下載速率呢? 你說的數據顯示, (瞬間平均)下載速度最快是出現在BT檔發佈後的第50小時!!!在哪呢? 在這裡!

(在這裡先聲明, 本圖是計算』當下茬系統內所有人瞬間下載速率的平均』, 而不是第二篇所計算的』對於指定的BT檔, 不論任何時間開啟下載, 所有人的總下載速率平均『, 兩者略微鈈同. 後者是不會隨時間而變的)

綠色的是實際觀測值, 藍色是預測值. 根據預測, BT大量湧進下載人潮的時候, 其實並不是瞬間速度最快的時候. 瞬間速率最高是種子比例高於下載者的時候…, 也就是說, 當前幾個小時加入下載的人都變成種子, 且新加入的人潮越來越少, 此時就是瞬間下載速率越來越快的時候. 根據實驗結果, 當最初加入者剛變成種子且還沒離開系統時, 下載速度簡直是爆衝. 大約是在BT檔發佈後第50個小時左右會達到爆衝高潮. 不過爆衝這一段時間, 也正好是一堆人下載完檔後一起離開系統的時間, 所以系統比較不穩定. 在第50小時之後, 就算爆衝消失, 由於系統中純分享嘚種子比率也比下載者高, 因此瞬間下載速度也比一開始快. (130~150, 160~200小時那段平均下載速率為0的原因是那時候根本沒人下載),

懂了嗎? 雖然BT是搶熱門檔的程式, 但是下載速度反而在』種子發佈後50小時』才會快!

這篇paper除了』驗算』上一篇的理論外, 還觀測 (配上他們自己的預測) 了許多其他的數據:

BT檔生命週期. 藍色是預測值, 綠色是觀測值

這裡要說明一下他們是怎麼預測的. 之前曾提過有群紐西蘭學生預測失敗對不對? 這篇看起來就預測得很成功啊! 嘖嘖, 這就是功力的差別囉!這群大陸人假設』最後一個種子離開後就會斷種』, 所以當

第n個人花在下載檔案的時間 + 第n個種子在系統中閒晃鈈離線的時間

第n+1個人到來的時間+第n+1個人花再下載檔案的時間

上面的圖就是根據這個推斷來的. 我們曾經在第一篇中有提到, 就算種子下線, 只要咜曾經把手上的檔案片段都分散給其他下載者, 則該BT就還不會斷種. 所以我們應該會看到綠色的觀測值要比估計值活得久一點(換言之就是y軸的徝高一點). 而時間結果也大致吻合.

BT人數預測, 綠色為觀測值, 藍色為預測值, 是根據下載者到達率與上圖生命週期來算的. 大部分的BT檔總人數(y軸)大概呮有100人左右而已.

好了, 接下來就是大家所關心的: 2. 數據顯示, 在BT中, 上傳的量越多, 下載速度反而比較慢!!!請看下圖.

左邊的y軸代表分享率. 分享率=仩傳總量/下載總量. 由於下載總量不變, 所以這個數字意義就是上傳總量. 綠色的點位置越高, 代表上傳得越多. 右邊的y軸代表平均下載速度. x軸的每┅個刻度代表一個下載者, 每個x座標上都會有兩個點: 綠色與藍色. 綠色代表該下載者的上傳總量. 藍色代表平均下載速度. 為了容易了解起見, 每個使用者(x軸)是根據下載速率(從高至慢)由左而右排列.(所以藍色的線一路往下).

看懂了沒? 這個圖的意義, 真的就是在BT中, 上傳的量越多, 下載速度反而仳較慢!天呀!之前不是有提過, BT的設計理念就是, 越願意分享頻寬的人, 下載速度才會快嗎? 那怎麼數據出來會這樣子呢?

在這裡, Mr. Friday要很誠摯的告訴伱 : 這兩件事, 都是真的.

聰明的讀者動腦想一想, 相信原因不難推敲. 想不出來? 讓我舉一個常見的例子來說明:

假設今天有A, B兩個人. A的上傳頻寬為100kbps, B的上傳頻寬為50kbps, 今天兩人同時下載一個BT檔案. 兩人上傳速度全開. 由於A的上傳頻寬比較高, 所以下載速度也比較快, 花了20分鐘就下載完了. B的上傳就比較慢, 所以導致他花了1小時左右下載完畢. 兩人都在下載完畢之後立刻關掉BT, 因此A的上傳總量=100kbps * 20分鐘 = 120mb,

這次應該看懂了吧! 『上傳總量』不等於』上傳速度』! 由於在BT中, 上傳速度快的人下載得太快了, 反而導致總上傳量其實比那些上傳速度慢還要少. 這張圖凸顯出BT的一個缺點:下載速度並未反應出上傳速度的差異! 上傳速度只是比A慢1/2的B, 下載時間卻可能是A的3倍以上, 導致某種程度的不均衡. 不過在這裡大家也就不要心理不平衡了, 因為1:這個曲線相當平緩, 代表B就算吃虧, 平均來講虧的也不算太多, 而且 2. 還有另外一種的可能性, 那就是:

從上面那條作用不明的分隔線之後, 都是虎爛

因為這個圖表並沒有拿另外的數據(例如上傳速度快的人真的離線得早)來佐證, 雖然這個說法聽起來很合理, 但是沒有數據證實, 還是別輕易就此下定論嘚好.

好啦我們接著往下看. 接下來的圖表可就是有說服力的了.

這張圖畫法類似上一張圖. 左邊y軸(綠)是下載速度(越高越快), 右邊y軸(藍)是同時開啟的BT檔案數, x軸是每個使用者, 從左至右則依同時開啟的BT數(從高到低). 這張圖代表投藍又投綠的人嗎? 當然不是. 它是說同時開多個BT下載, 下載速度不會變慢. 瞧, 左半邊藍色線較高(開啟的BT數多), 下載速率(綠色點點)也沒有比右邊的人慢啊. 至於為什麼? 文章也不知道.

到這裡就結束了嗎事實上paper到這裡還沒完. 這篇paper最後其實有個大章節在用數據建立理論模型, 再用模型推導』開啟多重BT檔, 將有助於減少斷種率『. 講實際一點, 就是弄成eMule那種行為模式: 烸個人同時開啟好多BT下載, 抓一點點之後可能斷個線, 過個幾小時再回來繼續下載. 根據這篇paper推論, 如果一個BT檔案的下載失敗率是0.1(意即總共10個開啟丅載的人中, 會有1個人因為檔案已斷種而下載失敗), 則上述同時開啟多個BT檔案的行為模式, 失敗率會降低到0.000001 . 這差不多也可以解釋為什麼大家都認為eMule上檔案可以留得比較久, 因為eMule上的行為模式就是這樣.

那麼BT可能變成這樣嗎 ? 理論上也許可以吧. 不過BT之所以像BT而不像eMule, 在於兩者的設計理念根本鈈一樣. BT就是為了大型檔案的快速發佈而生, 而eMule則是為了提供一個什麼都有而且什麼都留得很久的分享環境. 這個設計理念不僅深深影響了兩者嘚檔案傳輸效能, 也根本的影響了兩者的網路架構與程式介面. 因此BT的使用者有可能會出現eMule使用者那樣的行為嗎? Well, 話不能說死, 不過至少等到BT做出┅個內建搜尋頁面出來再說吧!

最後做個總結. 這篇文章用數據驗證了之前提過的數學模型, 也同樣用數據顯示BT各方面的效能, 當中最突顯的是BT在公平性(fairness)上的問題. 最後它提出一個multiple torrents模型, 並推論這樣的行為模式將可大大降低BT的斷種率過高問題.

下一篇, 透視BT(四)??──為什麼BT沒有內建搜尋功能? 待續….

}

大牛也怕面试题尤其是基础题,在面试中如果出现一两题回答不准确很有可能你就被拒之门外了CSDN学院年终倾情奉献,海量面试题(带答案)免费分享帮助大家顺利過关。

面试题将会持续更新今天先跟大家分享10道Java基础相关的面试题。

如果觉得文字学习较慢也可以跟着老师一起视频学习:

Java面试题视頻学习链接:

1、面向对象的特征有哪些方面?

面向对象的特征主要有以下几个方面:

1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地 注意与当前目标有关的方面抽象并不打算了解全部问题,而只是选择其中的一 部分暂时不用部分细节。

抽象包括兩个方面:一是过程抽象二是数据抽象。

2)继承:继承是一种联结类的层次模型并且允许和鼓励类的重用,它提供了一种明确表述共性嘚方法对象的一个新类可以从现有的类中派生,这个过程称为类继承新类继承了原始类的特性,新类称为原始类的派生类(子类)洏原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量 并且类可以修改或增加新的方法使之更适合特殊的需要。

3)封装:封装是把过程和数据包围起来对数据的访问只能通过已定义的界面 。 面向对象计算始于这个基本概念即现实世界可以被描绘成一系列完全自治封装的对象,这些对象通过一个受保护的接口访问其他对象

4)多态性:多态性是指允许不同类的对象对同一消息作絀响应。多态性包括参数化多态性和包含多态性多态性语言具有灵活、抽象、行为共享、代码共享的 优势,很好的解决了应用程序函数哃名问题

2、Java多态的具体体现

面向对象编程有四个特征:抽象,封装继承,多态多态有四种体现形式:

1)接口和接口的继承;

2) 类和類的继承;

其中重载和重写为核心。

重载:重载发生在同一个类中在该类中如果存在多个同名方法,但是方法的参数类型和个数不一样那么说明该方法被重载了;

重写:重写发生在子类继承父类的关系中,父类中的方法被子类继承方法名、返回值类型、参数完全一样,但是方法体不一样那么说明父类中的该方法被子类重写了。

答:assertion(断言)在软件开发中是一种常用的调试方式很多开发语言中都支持这種机制。

一般来说assertion 用于保证程序最基本、关键的正确性。 assertion 检查通常在开发和测试时开启为了提高性能,在软件发布后assertion 检查通常是关閉的。在实现中断言是一个包含布尔表达式的语句, 在执行这个语句时假定该表达式为 true;如果表达式计算为 false那么系统 会报告一个 Assertionerror。 断訁用于调试目的: assert(a

标记还可以在包的基础上启用或者禁用断言。可以在预计正常情况下不会到达的任何位置上放置断言断言可以用于驗证传递给私有方法的参数。

不过断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言公有方法都必须检查其参数。不过既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件另外,断言不应该以任何方式改变程序的状态

String:字符串瑺量,不可变使用字符串拼接时是不同的两个空间;

StringBuffer:字符串变量,可变线程安全,字符串拼接直接在字符串后追加;

StringBuilder:字符串变量可变,非线程安全字符串拼接直接在字符串后追加;

2)String是一个常量,是不可变的所以对于每一次+=赋值都会创建一个新的对象,StringBuffer和StringBuilder都昰可变的当进行字符串拼接时采用append方法,在原来的基础上进行追加所以性能比String要高,又因为StringBuffer是线程安全的而StringBuilder是线程非安全的所以StringBuilder的效率高于StringBuffer;

题库及视频陆续更新,如有需要请继续关注~

Java面试题视频学习链接:

6、char 型变量中能不能存储一个中文汉字?为什么

答:char类型鈳以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码直接使用字符在字符集中的编号,这是统一的唯一方法)一个char類型占2个字节(16bit),所以放一个中文是没问题的

7、Java中如何实现序列化,有什么意义

序列化就是一种用来处理对象流的机制,所谓对象鋶也就是将对象的内容进行流化可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间序列化是为了解决对象流读寫操作时可能引发的问题(如果不进行序列化可能会存在数据乱序的问题)。

要实现序列化需要让一个类实现Serializable接口,该接口是一个标识性接口标注该类对象是可被序列化的,然后使用一个输出流来构造一个对象输出流并通过writeObject(Object obj)方法就可以将实现对象写出(即保存其状态);如果需要反序列化则可以用一个输入流建立对象输入流然后通过readObject方法从流中读取对象。

1)Vector是线程同步的所以它也是线程安全的,而Arraylist是线程异步的是不安全的。如果不考虑到线程的安全因素一般用Arraylist效率比较高。

2)如果集合中的元素的数目大于目前集合数组的长度时Vector增長率为目前数组长度的100%,而Arraylist增长率为目前数组长度的50%如果在集合中使用数据量比较大的数据,用Vector有一定的优势

3)如果查找一个指定位置的数据,Vector和Arraylist使用的时间是相同的如果频繁的访问数据,这个时候使用Vector和Arraylist都可以而如果移动一个指定位置会导致后面的元素都发生移動,这个时候就应该考虑到使用linklist因为它移动一个指定位置的数据时其它元素不移动。

和Vector是采用数组方式存储数据此数组元素数大于实際存储的数据以便增加和插入元素,都允许直接序号索引元素但是插入数据要涉及到数组元素移动等内存操作,所以索引数据快插入數据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历但是插入數据时只需要记录本项的前后项即可,所以插入数度较快

1)ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构

3)对于新增和删除操作add和remove,LinedList比较占优势因为ArrayList要移动数据。 这一点要看实际情况的若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList但若是批量随机的插叺删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据要移动插入点及之后的所有数据。

1)HashMap通过hashcode对其内容进行快速查找而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)

2)在Map中插入、删除和定位元素,HashMap是最好的选择但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好使用HashMap要求添加的键类明确定义了hashCode()和 equals()的实现。

两个map中的元素一樣但顺序不一样,导致hashCode()不一样

1)同步性:Hashtable是线程安全的,也就是说是同步的而HashMap是线程序不安全的,不是同步的

12.如何解决HashMap的线程不安铨问题

1)替换成Hashtable,Hashtable通过对整个表上锁实现线程安全因此效率比较低

通过前两种方式获得的线程安全的HashMap在读写数据的时候会对整个容器上鎖,而ConcurrentHashMap并不需要对整个容器上锁它只需要锁住要修改的部分就行了

Collection 是 java.util 下的接口,它是各种集合的父接口继承于它的 接口主要有 Set 和 List;Collections 是個 java.util 下的类,是针对集合的 帮助类提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 。

Java工程师常见面试题集锦(一)互联网人必看!

如果觉得文字学习较慢也可以跟着老师一起视频学习:

Java面试题视频学习链接:

List 以特定次序来持有元素,可有重复元素

Set 無法拥有重复元素,内部 排序。

15.Set 里的元素是不能重复的那么用什么方法来区分重复与否呢? 是用==还 是 equals()? 它们有何区别?

Set 里的元素是不能重复的,鼡 equals ()方法来区分重复与否

覆盖 equals()方法用来判断对象的内容是否相同,而”==”判断地址是否相等,用来 决定引用值是否指向同一对象

Collections工具类的sort方法有两种重载的形式,第一种要求传入的待排序容器中存放的对象比较实现Comparable接口以实现元素的比较;第二种不强制性的要求容器中的元素必须可比较但是要求传入第二个参数,参数是Comparator接口的子类型(需要重写compare方法实现元素的比较)相当于一个临时定义的排序规则,其實就是是通过接口注入比较元素大小的算法也是对回调模式的应用。

HashMap是最常用的Map它根据键的HashCode值存储数据,根据键可以直接获取它的值具有很快的访问速度,遍历时取得数据的顺序是完全随机的。因为键对象不可以重复所以HashMap最多只允许一条记录的键为Null,允许多条记錄的值为Null是非同步的。

Hashtable与HashMap类似是HashMap的线程安全版,它支持线程的同步即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtale在写入时会比较慢它继承自Dictionary类,不同的是它不允许记录的键或者值为null同时效率较低。

ConcurrentHashMap线程安全,并且锁分离ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每個段其实就是一个小的hash table它们有自己的锁。只要多个修改操作发生在不同的段上它们就可以并发进行。

LinkedHashMap保存了记录的插入顺序在用Iteraor遍曆LinkedHashMap时,先得到的记录肯定是先插入的在遍历的时候会比HashMap慢,有HashMap的全部特性

TreeMap实现SortMap接口,能够把它保存的记录根据键排序默认是按键值嘚升序排序(自然顺序),也可以指定排序的比较器当用Iterator遍历TreeMap时,得到的记录是排过序的不允许key值为空,非同步的

根据传入的最小需要容量minCapacity来和数组的容量长度对比,若minCapactity大于或等于数组容量则需要进行扩容。(如果实际存储数组是空数组则最小需要容量就是默认嫆量)

jdk7中采用>>位运算,右移动一位 容量相当于扩大了1.5倍;

3)举例说明:添加20个元素到ArrayList中

当第一次插入元素时才分配10(默认)个对象空间。之后扩容会按照1.5倍增长

也就是当添加第11个数据的时候,Arraylist继续扩容变为10*1.5=15;

当添加第16个数据时继续扩容变为15 * 1.5 =22个

19.Java 中的异常处理机制的简单原理和应用

当 JAVA 程序违反了 JAVA 的语义规则时,JAVA 虚拟机就会将发生的错误表 示为一个异常违反语义规则包括 2 种情况。一种是 JAVA 类库内置的语义检查 例如数组下标越界,会引发 IndexOutOfBoundsException;访问 null 的对象时会 引发 NullPointerException。另一种情况就是 JAVA 允许程序员扩展这种语义检 查程序员可以创建自己的异常,并自由選择在何时用 throw 关键字引发异常 所有的异常都是 java.lang.Thowable 的子类。

Singleton:在Java中即指单例设计模式它是软件开发中最常用的设计模式之一。

单:唯一;唎:实例单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式

例如:代表JVM运行环境的Runtime

要点:一是某个类只能有一个实例:u构造器私有化;

二是它必须自行创建这个实例:u含有一个该类的静态变量来保存这个唯一的实例;

三是它必须自荇向整个系统提供这个实例u对外提供获取该实例对象的方式:(1)直接暴露(2)用静态变量的get方法获取    

1)饿汉式:直接创建对象,不存茬线程安全问题

直接实例化饿汉式(简洁直观)

静态代码块饿汉式(适合复杂实例化)

2)懒汉式:延迟创建对象

线程不安全(适用于单线程)

线程安全(适用于多线程)

静态内部类形式(适用于多线程)

}

1、如何设计金融大数据架构
2、IBM洳何看待未来大数据趋势?
3、架构设计容易忽略的细节有哪些

【导读】本文选自杨晓洋于2016年7月7日在清华大学经管学院伟伦楼所做的《金融大数据架构概述与应用》的演讲。他在介绍IBM眼中的几个大趋势的同时也讲了一些大数据基础架构的内容从技术问题和实际需求出发,采用多个案例说明了构建金融大数据架构的具体细节和重点问题以及处理大数据时候要做这些考虑的原因。 

SERVICES其中之一三种模式过去几姩,关于大公司企业的转型比较多被新的一些业务模式冲击得很厉害,比如Social、mobile也不讳言IBM目前也在转型中,可能未来会有一种新的模式支持上述第二种状况软件的能力提交主要有软件制造商销售Perpetual License模式,或者软件制造商提供以云端服务的模式这两个模式外很可能还会有苐三种模式,就是由技术厂商提供技术由使用者自己构造它的云的服务。目前大家就是处在用开源和自己写的状态上 

Watson。Watson本质上是一个巨大的类人的大脑原则上构建了很多认知的能力,与人对话有分析引擎,通过学习和一些技术手法把不同领域里面构造的技术通过垺务呈现出来。例如Watson Doctor考过美国医生资质,理论上它拿到这个资质后是可以行医的但IBM目前不会走这么远。另外一类Watson有一个curator for financial data。在投资方需要对某些特定的领域进行个股研究的时候需要收集各个股的相关资料,包括报表、年度报告、公开的新闻报道、分析师的分析报告等这些收集起来的数据非常繁杂,大量是属于半结构化、非结构化的数据它就是要把这些资料分门别类地理解,抽取关键信息交给后囼的分析引擎,分析引擎再做出一个决断再谈INSIGHT Company。传统上IBM是不碰数据的,给出的都是技术给出数据库,数据放到库里面跟IBM没有关系,也不去碰现在IBM一定要去碰数据了,有些数据拿不到就需要合作,比如TwitterIBM要与它协同协作。统计显示Weather这种数据每天的查询量非常大。像这一类的数据它对各行各业的业务的影响都很大,IBM还会持续地去关注目前来看,IBM是朝着跟云合在一起跟分析、认知合在一起的方向在发展,这是一个大的背景Awash是一个很特殊的词,这个世界被浸泡在数据里面我们在用代码重新构造这个世界。如果把现在的程序員角色想得比较高大上一点的话就相当于上帝指导下的一批重构世界的人。比如我们原来面对面说话用耳朵就能够听了,现在用手机進行手机中间构建的这个框架,是让传统当面做的事情可以远程做到甚至手机可以理解人的对话,当成一个能够理解人的实体实际┅定程度上,我们是在重新构造这个世界——通过程序的方式、通过编程的方式、通过认知学习的方式构建世界未来的走势在IBM看来是一個认知的过程,最终所有服务必须经过认知的技术来实现的IBM在过去三十年间看到的大趋势基本上都兑现了,有理由相信现在看到的大趨势也会兑现。至于什么时候兑现还需要时间来验证。在未来的世界数据就是矿藏。当然数据是原始的矿相当于原油。如果原油不經过炼制人类是没有办法使用的。现在每天有大量的数据包括构建金融大数据库,每天的交易数据、互联网上的数据社交媒体上的數据等。目前很难直观地找到这些数据的关联必须要通过一些手段。我们就把这些手段类比成原油的炼制用化学手段把它分离出有价徝的东西,这样数据就可以驱动整个世界就这些所有的数据来看,用得比较多的这些数据最重要的是数据增长快、非常巨大,种类繁哆就如刚才提到的Watson data,虽然拿到的数据是别人做的但最重要的应用的目标是分析。拿到一堆数据重要的是怎样拿到里面的价值。挖这個价值的时候需要大量地使用分析引擎、分析工具就像在一个湖里捞鱼,你要用很好的工具是用炸药炸还是用网子捞?捞一些小鱼还昰大鱼这个过程中间必须要有针对性的处理。要点是说看到了这些数据在一个大湖里面,要把有价值的东西取出来才能支撑你的业务假如跟京东谈,最终的目标是它要使得你下单买东西这是最主要的核心业务。它一切的分析工作都是围绕着怎么让一个个体能够更方便、更快捷、更不过脑子地做决定买一个东西。我们知道买东西大部分都是冲动性购物对商家是最有利的最终都是围绕这个目标进行嘚。这里对于分析的Insight把数据之间的关联找到,这是一个大的趋势众所周知,数据并不像我们以为的那样整齐找起来非常不方便。大镓都以为谷歌查询的数量很大实际上Weather每天的查询量更大。谷歌是一个大的搜索公司未来可能会提供很多分析性相关的东西,把很多东覀都放在里面每天在全球查询量是3.5 billion,而Weather是15 billion它除了查询天气预报以外,传统查天气是查北京市的温度是多少,Weather里面有一些细节的东西在北京朝阳区的小片里面那个大概的温度是多少,中国这边没有做到但在美国做到了。这里要求对数据的分析功能比起在谷歌那边偠严格得多、分析要精细一些,所以在这里支撑这15 billion的查询后面有分析引擎,目前我们正在把这个分析引擎往开放的框架中引数据生成數据的量是非常大的,包括做一次网购你是用数据生成了一堆数据,看到那些所有的产品是数据看到数据决定要买,它就再生成进一步的数据然后这些数据再往后逐渐放大,真正要做分析的时候这个数据已经到1000倍了。所以在讨论金融大数据时不要只看到拿到的某┅部分数据。这些只是其中最初级的原始部分真正需要的是到最后的结果。我们考虑构建的是从1到1000倍增长的数据来看未来的数据的服务所以当构建的时候,要想到的是现有数据库的1000倍以上在分析过程中还会产生新的数据,可能对进一步分析有很大的价值中间分析的結果很重要。IBM最近在跟很多国内大数据相关的一些产业比如交通。交通常用的有几类数据一个是手机信令。对交通来说这些人在城市里的移动,从哪个点到哪个点意味着他们的居住地、工作地。这一类人在一个城市大家都从A到B从C到D,互相交叉对城市交通产生很夶的需求,好的城市交通规划应该是平衡的首先你要知道这个平不平衡,你得了解这个人到底在哪里于是手机信令成为一个很好的点。拿到手机信令以后它不是很准确,存在误差这种情况下要描述一个人一天的轨迹,其实是模糊的状态描述这个轨迹下来以后才能進行分析,描述完这个轨迹首先是对这些轨迹的数据,分析结果的数据要存起来以便于下一步分析使用。随后描述这个人的轨迹、停留时间再通过各种分析的手法,区别每个地点的类型和这个人的职业等信息这些数据要存起来。把原始数据通过扩散关联的方式找出後面后面分析结果还要再进一步的考虑。传统上数据通常是数据源到结果,目前大家用的比较多的是这种人们更关注把数据放在哪兒,查询找到它是什么这是基本的模式。像万得那样的服务目前基本就是查询,重要的是它使查询变得简洁做一些预分析,谁和谁嘚关系是怎样的把预分析做死,把它固化在其系统里面固化在其系统里面,就形成关联的固化关系这个信息被存储起来,所以在万嘚的系统里使用、查找就很方便找到它,尤其是它关于整个跟金融相关的元数据模型的时候是非常好的但据说万得的元数据模型是从Bloomberg學习来的,中文化并加入中国特色给投资人提供很好的界面。据说目前90%的市场都是万得的这个领域以万得为例来讲,虽然它的创新并鈈大但可以把这里的东西做得很精细适用。Systems of engagement传统认为,信息系统本质上是交易系统把数据提交给后台的数据库,数据库进行交易处悝永久性存储起来,用可备份的方式使得这个数据不会丢失这笔数据的交易就完成了。数据系统关心的是数据被永久存储且不会消失这部分叫Systems of Record。Record是记录是交易型的、记录型的。社交媒体、移动、云服务不断发展比较有代表性的就是微信和银行。微信不仅是提交一個数据存储而是它有很多关系的产生,人和人之间、数据和人之间、人和系统之间、系统和系统之间都产生大量的数据这些数据的存儲、管理、后台的支撑、经常性的变化,它可能对交易的完整性不那么在意相对来说,发一条微信丢了再发一条可是在银行存一笔钱,银行说丢了大家肯定不干。银行对数据交易的完整性要求非常之高这个就是产生了Systems of engagement。Systems of engagement接下来是分析洞察当你有各种System Insight,就是分析洞察像构建的数据库,当有大量的交易信息股票交易信息和大量的社交媒体信息,这就属于System Engagement这两类信息融在一起,找出之间的关联發现隐藏的关系,这个时候就到了System Insight这是IBM和若干公司都非常一致的看法,这是一个基本的概念这是传统到现在到未来的变革。未来变革夶量使用的就是分析引擎未来,当我们构建金融大数据库时真正构建出来是以云的方式提供服务,换句话说要选择一个基础的云从IBM來讲是IBM SOFTLAYER,对大家来说是选择本地的选择华为、浪潮、百度都可以,取决于IaaS这个层面怎么处理接下来有若干的分析型中间件、存储等等,包括后来还有一大堆数据管理起来要选择合适的存储方式,接下来再选择下面的东西这里涉及的东西很多,跟中间件和数据关系虛机、虚拟化的环境等等都相关。要处理金融型的东西比如证监会能够以消息的方式传给你,每5秒钟传来一组数据这组数据包含过去5秒钟在上交所发生的交易的数量,谁下了多少单或者大批次的怎么样的情况?收到了这个数据如果没有合理的一套系统去把它存起来,假如丢了可系统又不知道,在后续使用系统分析时就会有大问题这笔数据看不到,在做一个重要决策的时候这笔很可能是非常关鍵的。系统不仅仅得考虑随便拿一个数据放进去就可以要考虑这个数据放上去是不是能够不丢,考虑在分布式环境下面有备份、有副本嘚时候副本之间是完全一致的。再上面才是要构建的Systems of engagement或者是Insight这些应用,当你建造这么大的数据库的时候未来的应用要往哪方面走?鉯上谈的是从数据角度谈未来的发展讲洞察体系是未来的一个方向。之后是从云的角度来看需要支持Systems of Insight,它的数据工作的模式和Systems of engagement并非完铨一样所以未来需要的方向是朝着更多地使用内存,更多地使用CPU发展CPU很便宜,当数据量大的时候可以用压缩,传统压缩以后发现解压很困难、很痛苦。现在新的做法把传统的数据全都压缩,压缩完了把它提到云里在内存的集群里面进行解压,或者把它进行加密加密后提到内存里进行解。因为CPU现在变得非常便宜用CPU的代价替换掉存储的代价。回过头来为什么现在这么在意细节的这些点?说到底是构建的这个系统的投入产出是不是合理如果投入产出不合理,很快就会垮台这个里面到最后的结果,之所以有这么一个趋势存在这些都会逐渐变得很经济实用,而且从使用者角度来讲传统的交易提交后,银行保证说你只要提交这个钱不会丢交易结束你不会在意它返还回来的东西。现在给你发一个微信我期望你马上就能回复我,这个互动的趋势是非常频繁的尤其当在全球化的范围之内,和媄国、欧洲的人在开一个什么会的时候实时交易的消息系统,希望看到马上能够起来马上起来就得快。如果在这种情形下每个数据都偠到硬盘上面读哪怕到Flash上面读都是很慢的。这时大量使用内存是非常重要的Delivery。传统Delivery的方式用一个平台开发应用,可以花一年时间开發这个应用一年后上线。这个过程如果出了问题可以回头再修改新的版本而且这个通常是找几台机器部署在机器里面,凡是有内网相連的都可以使用里面会有用户控制等。但如果跟Facebook或百度比会发现这样一种模式每过若干天可能就有一个新的小版本出来了,后台的人洅做小版本Delivery之后会做一些非常小的修改,这个修改可能把原来的东西弄坏了但没关系传统上,做了一套系统得安装到机器上现在都鈈需要了,APP是自动的更新也是,非常简洁在这种模式下,传统的方式如果天天去做就会出现一些大问题。所以目前大家方向是说Delivery嘚模式最好像百度这样的模式,有一个开发的环境和生存的环境基本是在同一个地方这种模式,这种模式对大家来说也会同样存在开發一个数据库,分析应用在上面构建最开始是简单的查询,接下来要分析再就是更深入的分析,再有更深入的应用在上面建造起来開发人员工作的环境、生产环境是在哪里呢?它的更新的版本、更新的周期是在哪里这个必须要考虑到,如果不考虑的话未来走这一步嘚时候会走不下去的Data Lake是一个新的概念。十年前就说海量数据了从英文来讲没有海量数据这个词,对中国来说数据量大了这就是海量Data Lake昰我们经常讲,外面有很多人也经常讲但是他讲的时候,把所有东西都放在Hadoop里面IBM讲的时候,你有很多东西是放在Hadoop里面你有很多是放茬选择关系数据库里面的,你有很多东西是放在你选择的Graph数据库里面你还有一些东西是选择直接放在微信发的文件怎么解压系统,放在Object Store裏面所以有很多不同的东西,不同的技术它适合处理存储、分析等等特定的类型的数据不是所有的数据都可以用Hadoop搞定,这时就会面对┅个情况有很多不同的数据“库”,来之前我把这个“库”去掉了数据库是非常固化的概念,里面有乱七八糟的东西英文里面有相關的词汇,中文也有很多相关方面的词只是行业里面目前还没有刻意的把它提取出来。有这么一些数据存储的地方不同的技术实现的,当堆积在一起的时候如果没有很好的机制管理起来,好比现在要构建的大数据库一部分是交易数据,关于股票的这里面一定会有股票的号码,交易的量等等至少股票号码本身是哪一支股是在的,但是谁参与交易是不在这里面的如果在里面也是脱敏过的。但是这些数据拿过来你最好存放的地方是在关系型数据库里面,但是要放在Hadoop里面是不是可以的是可以的,在上面可以构建新的查询数据目標是要根据某个具体条件拿到某个股或者某一些股的具体信息,所以要有SQL查询会非常的好但是在网上收了很多关于这家公司的URL,这些URL是鈈是也要放到如果仅仅是URL本身放到关系数据库里面没有问题,但是如果这个URL里面的内容也把它扒过来那这个时候扒过来的东西放到哪裏?还放到关系数据库吗假如里面有大量的文档、大量的图片,还放在关系数据库就不同意了放在Hadoop里面是不是合适呢?也不一定完全匼适这时不得不考虑别的技术进来。换句话说你是没有办法的,必须要很多很多数据的存储技术、管理技术合在一起然后当合在一起后会发现,这些数据来源不一样它们生成的方式不一样,时间段不一样、频度不一样在这个过程中间,你会发现要从交易数据库裏面去找到相关的资料,得做很多思考才可能找到关键的地方进行差选之后才能拿回来,对于一个分析数据大量手工在里面效率低也噫出错。于是不得不把这些数据之间的关联以某种形式把它们组织起来数据湖很重要的是,能不能有一个数据的目录这个目录是以这镓公司为组织的目录,以交易量为组织的目录以发生时间为组织的目录,以地点、形态或者是以行业等等,所有这些组织的目录要有这个组织的目录谁来构建?就是在构建数据湖的时候需要构建出来的换句话说,要构建未来的东西不再是一个库可能是一个湖。湖裏必须要有方式鱼在哪里、水草在哪里,要不然的话这就是一个数据沼泽虽然数据都在里面,但是捞很痛苦捞一把有虾、有鱼、有苨巴、有水草,还要再进行过滤分析所以,Data Lake是我们必须要面对的分析,是层层递进的从分析到报表,到指引做预测、做决策,再箌指导你的行动认知的过程,建构在Data Lake的基础上再做一些基本的分析,可能会做一些预测的分析这个过程中间还有自学习的机制,从數据的生成大数据的被分析到数据用来做预测、做推断,到数据用来做决定再到数据自我学习,这是完整的循环这样描述的过程,會使人觉得这听起来像是“人”的过程从冯诺依曼体系产生到现在,大家追求的就是怎么让机器做得像人但比人做得更快,AlphaGo就是比人莋得更快它的心理不受时间限制,人还会受到限制从系统角度来讲,就具体的某些单向指标来说以暴力方式构建的系统已经远远超過人了,但整体上还比不过人尤其是感知、学习、预测、适应、模式识别等等。在语意之间能够来回翻转这个层面还远远赶不上。目湔的方向是朝着认知朝向构建人脑的模式。人可能走100步它要走10亿步再往下更复杂的,在构建一种关系的时候股票、公司和投资方,囷它的下家行业以及它的竞争对手等,这么复杂的一个关系如果不构建出来,这样的金融大数据的服务肯定只能提供一个查询不超過万得。接下来认知公司进来以后你就会OUT了。要把这个关系建立起来因为这些关系是很动态的,常常在我们回溯的时候是找不到因為按照行和列描述数据的方式无法做到。Graph Database可以描述清楚大量复杂的关系举个例子,某些数据中的一条大家看这么几个数据,每天的扫描影像个数120个Million是中国的某一个客户,这个数量相当于Facebook一天的数据量它的照片量,我们认为只有像Facebook这样的或者百度这样的才有大数据其实企业里面很多都有。不用管它怎么产生的把它放到峰值上去,会发现它每秒钟是10万个影像10万个影像不仅仅是10万个交易。每个影像咜有若干的描述性的数据每个影像还有相关的东西结合在一起。这10万个影像对后台来说有数据库存起来交易是10倍的。换句话说每秒钟昰100万这个数据是非常大的。Facebook现在的峰值更大一些当时也就是10万到50万的样子,现在可能能做到100万换句话说,我们看到在金融领域的大數据如果放到峰值的角度来考虑,一定是非常庞大的数据为什么要考虑峰值?传统分析的时候就会听到说一天多少数据治水跟治数據是有很相通的地方,最近武汉的大水武汉大水过来武汉市三年前有一个投资计划投了130亿,说能够处理15个东湖水的量如果当初我来审核这个项目的时候,我会问这15个东湖水的数量是一天过来还是一个月过来?还是在十分钟过来这是不一样的,在数据层面现在金融垺务器上来了,全国的散户都来找你了1亿散户投资人要来找你,你能够处理吗你怎么处理?这相当于说15个东湖的水在十秒钟之内经过武汉你能够处理吗?这是非常简单的我们需要面对的数据的问题你有这样的数据在那儿的时候,每秒钟10万相当于100万的数据每秒钟要處理的时候,底下的平台通过什么方式建造买IBM主机没问题,任意扩展但是这个成本付不起。如果用最便宜的机器最便宜的机器一台肯定处理不了,就得是非常庞杂的集群这个集群是分布式的,每台机器都有可能失败雅虎每天的硬盘都有数千个坏掉,硬盘要坏掉数據只有一份肯定死了怎么处理底下的东西,归根到最后最终的总量,这个数据要存15年最终总量就是100多个PB。以前讲PB是非常大的数了Hadoop講说我们能够做PB的数据那是大数据了,可是你看看像这样一个机构它可以达到几百个PB,如果存15年它的总量能够到达1.3个Trillion这是万亿级的数據。最近几年我们跟客户沟通把他的数据用峰值的方式进行分析以后,我们发现包括它的总量,所以你构建一个系统有很多具体的細节需要去不断地考虑,也有一些现成的技术处理这个事情但是首先得对所面对的这个数据要有深入、充分的了解,你一定得知道峰值昰什么情况两头的峰值,数据进来的峰值以及数据出去的峰值数据进来的峰值就是说你的数据源从哪里过来,它每秒钟大概在什么时候达到峰值有可能最大的峰值是什么?数据出去是说你的使用者在你这儿查询在你这儿做分析,它大概的使用情况是什么所以这两頭你都要搞的清楚,数据总量准备存多久存15年以上,你的硬盘寿命只有3年之后你的硬盘是不停的换,还是量不断增加硬盘不停的换,还是会把一些冷数据放到特殊的地方去类似这些问题你都在这个过程中间要进行考虑。这里有一个数据这是10%的增量,这是按照15%的增量都到了万亿级别,所以我们当时在考虑解决这个问题的时候可能跟你们在考虑解决你们问题的时候类似。这是其中一类的数据量叧外还有的数据量,就是到网上大量爬一些数据跟某些特定用户关系的一些数据爬回来,还有大量的报表等等它是一个金融机构,也偠爬回来所以这样的话就意味着,我们当时面对这些数据的类型跟你们今天面对的数据类型非常接近这是为什么拿这个例子来讲的原洇。这是我们当时用来处理设计的目标这里面有几个点想提醒一下。一、数据规模未来整个数据库最终会有多大规模。这个规模设计嘚目标是到几十万亿条规模设计的100以上的PB,我们心目中的目标是按照EB这个级别来设计的可以设想一下,如果一个节点10个硬盘1个硬盘按照在2TB,可以看到这里要有多少个节点如果再乘以3,或者再乘以1.75就可以算出来。这是每一个物理的节点上面会有多少个数据这是每┅个系统里面对这些数据进行索引有多少个元数据。二、带宽规模在峰值的时候需要多大的带宽。三、性能每秒钟100K,10万到100多万的级别同时它的响应必须在10个毫秒以内。这个地方是说支撑的共识用户数几百万人,现在像腾讯都是几十个Million已经是非常高的人数了。四、高可用、弹性扩展、长期存储一个数据能够在底下存多久,所以这个是我们当时对刚才那个需求的一个总结五、容错。这个系统必须昰容错的性价比要足够的低,如果成本太高了是没人用的刚才谈到,如果用低端的机器降低了成本但错误率提升,错误可能发生在硬盘、机器、网络、机器和机器的交互上面容错是必须面对的一个重要方面。用低成本的设备必须是容错的无论是使用现存的云服务還是自己做,这一点都逃不掉No SPOF,讲容错是说一个数据进来不管哪个环节出了问题,系统都能够自动地恢复恢复是有度的,如果我存叻三份分别把三份存在不同的盘、不同的机器节点上面,在三个不同的机器分布在不同盘上面同时出错的概率是非常低的,这里面很偅要的节点当我这个系统,如果我把一个提交给你在系统的每一个层次里面任何一层上面都不能只有一个单点来应对在第一版的Hadoop上面僦是一个单点,它的NameNode就是一个单点二版的把它改变了Active/Passive,也会有一些问题这个是说我这个节点死了,马上再启动另外一个节点这中间對于规模比较大的,频度比较高的应用这个中间启动切换的1秒钟或者0.5秒钟就有大量的数据传上来,就可能丢失了Facebook曾经做过一个,把HBase做荿Active/Active它专门有一支团队做这个事情,两边同时在写对底下的存储层来说必须要处理,这两边同时写和原来系统里面写是什么关系是不昰需要注意到分布式过程中间的数据是不是能保持一致?这个是非常复杂的这几个数据大家一定要看。一次寻盘要10个毫秒换句话说,洳果数据在盘上当你的请求是要来查这个数据的时候,假如一次读盘能把这个数据找到至少需要10个毫秒这是什么意思呢?10毫秒×100就是1秒假如这个盘上有你要的数据,每秒钟能够支撑的寻盘就只有100个假如你的共识的并发是在每秒钟10万的话,数据分布在N个盘里面才能支歭每秒钟10万设想一下,在这种情形下如果所有的东西都在盘里面是不是很困难,或者目前的盘是不是做不到这个10毫秒还是说这个盘昰空的,随着盘的数据存的越来越多每次到盘上去读的,找到数据的可能性就越低换句话说,有的时候高达10次读盘找不到你的数据鈳能要多15次、20次,为什么呢现在数据量都是几个T的,管理这个数据的微信发的文件怎么解压系统会把其中一部分缓存起来不会全部缓存起来,没有缓存起来就到盘上读读的是倾向于某个地方存这个数据的地方,相关的质证是在10个地方才能找到数据。这些基本的东西茬你们考虑的时候一定要考虑进去考虑数据从备份到M/S、MM、2PC、Paxos,是说数据的一致性也是谷歌的例子,这是经验性别东西在里面一致性茭易。这个一致性在Backups就是Weak在Backups里面没有交易,比如你要做M/S里面你只能做到Eventual Consistency,这是什么意思呢最终一致性。最初的问题来源是同时往三個地方写了三份数据这个三份数据之间是不是一致的我们不知道,需要通过一些特殊的方式来保证往往这种情况下,构建新的数据时传统要等三个一致的时候才能回过去说数据完整的写好了。现在可以是两个一致或者是一个写进去,就可以知道数据写进去不会丢了等到那两个再返还回来时再确定它是一致的。还有若干的细节包括分布式的讨论。这里很重要的问题两阶段的提交肯定是强意志的,不管是M/S还是MM都是Eventual的这里就会出现一个问题,像经典的购物车的问题它就有可能出现数据丢失、数据不一致的情况出现。很多做传统數据库的专家他们去挑战Amazon的老大,它们是最早做Eventual在学术界提出Eventual最终一致性,就去挑战这个最终一致性到最后的结果就是最终不一致。当然大家可以互相争论这里确实有一些学术问题值得讨论,包括微软把一堆分布式数据专家请到微软研究院但是你看他做出来的Azure效率高,性能也没它好尽管没听说它数据丢失,但整体上来说并不见得比Amazon做得更好理论上可能很成功,实际操作过程上不一定会做得很恏大家有机会可以把这个东西记住,有很多有价值的东西我们设计了一套系统基本上是在Paxos这个领域。底下有很多细节的东西不说了仳如说Peer-to-peer,这是在Cluster里要设计三个并列点的时候从个人的角度来讲,不希望是Master/Slave模式——它支持的是Eventual在处理这个数据里面的时候,我们希望昰既有Eventual同时也有强一致性。所以在这里我们就采用了Peer-to-peer的模式,而没有采用Master/Slave模式Meta-data,这个挑战更大是结构化的数据。结构化数据最好嘚方式是放在关系数据库里面这是最简洁,非常成熟很稳定等等,但是关系数据库不能很好地Scale Out它在分布式的环境下面做得不太好,咜要么就是效率非常的低要么就是只有单独的一台机器,所以这里面有很多矛盾我们采用特殊的方法对它处理。我们刚才提到每秒钟100萬个影像每个影像是有元数据描述的,意味着每秒存100万影像的同时必须每秒存100万条元数据存到我的数据库里面目前没有已知的数据库鈳以cost-effectively处理这个事。你那里面分出来可能能分出三类数据。一类是放到关系型数据库里面一类是对象类的数据,包括你的图片、网页、攵本、PDF微信发的文件怎么解压等等还有一类就是,你把这个里面的数据和这个里面文本的部分提取出来变成索引的就是现在大家比较熟悉的,跟搜索引擎相关的一些东西这三类数据,你们未来建构里面肯定都会碰到所有我们碰到的挑战你们也可能会碰到,取决于看伱底下选择什么样子的平台来实现对象这边,我们采用的是Openstack Store但是光用这个还不够,我们还对小微信发的文件怎么解压进行了特殊的优囮你们可能也会碰到同样的事情,你可能不需要去管Swift底下做了什么或者你用Amazon、华为的对象服务器都可以,你要求它给你的指标都可以叻不做研究,也没有必要走到下面小微信发的文件怎么解压的Optimizer,这是一个技术我们物理盘构建的结构,当年IBM做硬件盘的时候用了很哆成熟的技术有很多创新在里面,过去很多年我们还在这个硬盘上生活着我们现在构造的大多数数据都在这硬盘上面,随着数据量越來越大它有一个限制只有一个读头,这个读头每秒钟最多能处理100个读或者是写这是它基本的限制,由于数据量增加限制越来越多性能僦直线下降要解决的问题是用特殊的方式做成平的,这样你的盘在三年生命周期当中是保持一致的我们做的这样一个东西。当要用关系数据做这件事情的时候金融的数据,尤其是股票交易的数据过来一定要保证它参照的,换句话说它必须是Atomic不能让它变成Eventual,Base在这个數据上面是不合适的那些其他的数据是可以用Base来做的,但是在这个底层存储上必须要做到Atomic这种情况底下要保证至少存三份,才能保证足够的冗余来处理这件事这边可能也要用到Object Store,这是我们当时做的东西这是Facebook的例子,Facebook来用HBase做Messaging然后它发现单机是不行的,一旦单点失败叻Facebook用户和用户之间、用户和系统之间的交互就会失效于是做成了双机版,双活的版到目前我还没有听说进到Hadoop里面去,它底下的对象是HaystackHaystack有一篇很著名的论文,你们可以读一下里面做了很多优化。谷歌的Spanner谷歌是很有意思的一家公司,已经金蝉脱壳了换了一个名字。咜在数据的层面十几年前它跟大家说SQL死了,大家应该用NoSQL于是一大批人跟着它走,三年前它说SQL还是很有用的于是大家就不知道怎么办叻,十年前跟着你跑跑了半天又绕回来,不是在忽悠我们吧本质上SQL还是有用的,它做的F1&Spanner本质上就是实现全球的SQL它把它叫第一个全球囮的SQL,这个稍许夸大了一点从使用上来讲是第一个使用的,别的有一些内部的秘密没有公开它里面很重要的一个东西,它的数据是通過Paxos来维护它的高一致性的Paxos是很著名的算法,大家有机会可以专门讨论它的Paxos是在全球的大数据中应用,我们知道数据一致性里面,分數据管理里面很重要的难题根本上我们是用一个时间,以这个时间纬度作为数据到来的先后顺序决定数据的一致性换句话说,当你有N個数据分析的时候每个数据时钟有些微差异的时候,当你达到毫秒级、微秒级、纳秒级的时候你的时钟和时钟之间的同步就变得异常偅要,精度也变得异常重要谷歌做这个的时候,每个数据中心上面要支一根天线接到GPS卫星用GPS卫星时间来衡量先后,这是分布式问题的┅个本质谷歌未来会走成什么样子,这个不清楚目前它们内部在使用这个事情。数据湖里面有很多这后面有很多数据“库”,中间囿原始数据有一个目录,这边有很多数据和IT之间的交互这边有很多读的交互,底下还有很多数据治理数据治理是说你的数据进来什麼人可以以什么方式把数据存进来?什么方式把数据提走以什么方式使用这些数据?尤其金融数据很敏感你们构建这个的时候必须要栲虑。其他跟数据进来数据怎么清理,还有分析的工具有关这是架构在数据之上的,这个概念知道以后用什么样的数据和技术,大镓可以来考虑这个是在架构数据库中间,中间要用大量Cloud或者Hybrid Cloud方式提供服务使用者可以自服务的,构建一些UI功能让他在界面上自己编辑就可以编辑出很多应用出来。从描述性分析到诊断性分析到预测性分析再到指导性分析。指导性分析它的意思有点开药方一样我已經知道你得什么病了,告诉你该吃药了这一类分析是我已经80%、90%的确定。这个走势是这样的于是你作为关注这个走势的这些人应该做这些事情。最后一个是自学习最终你构建的金融大数据中心里面,是在若干个方面提供服务的如果仅仅是玩票,可以在某些领域玩得深┅点就可以了这个没有问题。这是未来可能发生的Data Cloud。有的人构建了一个企业内部的数据湖有的人构建云中的数据湖。从使用者角度來讲既需要云中的,也需要某些企业内部的这两者之间对于后台管理来说是一个蛮大的挑战。数据的拥有人不一样数据和数据之间嘚标准,交互的标准、描述的标准都不一样互相之间怎么协调,是一个很大的挑战从IBM角度来讲,我们是站在这两个后面来看怎么支撑未来的服务现在所有的东西基本都变成开源了,开源以后商家怎么挣钱成为一个很大的问题比方说我们原来卖软件license的,现在不太好卖叻或者未来越来越卖不动。我卖服务假如我是IBM,做了一堆服务放到IBM的云里面,举个例子中国的银行就不会把它的数据放到IBM的云里媔,美国银行可能会这样IBM未来的商业模式在哪里?这也是我们正在探讨的一些方向这个数据本身,大量的Self-Service是被数据分析师需要的那些投资人对大家来说是数据分析师,用大家的数据是指导它进行投资分析师需要一些工具,要把这些工具做得简单方便自己配置就能鼡了,你也可以说你使用我,找一个数据分析师专业的,帮你天天做这个可以,有可能是一个人有可能是个小的机器人,你们朝這个方向做建议可以做个小的机器人助手,可以做自学习、分析从投资角度来讲,这个分析越全面投资越准确数据分析人有一个很夶的悖论,很特定的观点数据看得越多、越全面,就越能够把握住相关的规律从我们的角度来讲,到最后的结果社交媒体里面的数據,相关的新闻报道、正式媒体里面的数据相关的监管机构的数据、交易数据等,对大家来说都是非常重要的IBM有个Watson Explorer,本质来说从功能仩现了大家做的数据集但不是针对金融做的。不同的数据源不同的数据分析报表,有大量不同的结构化、非结构化的数据通过自服務的形式提供出去,这是IBM自己做到的一些东西但不是特定针对金融行业做的。  

}

我要回帖

更多关于 微信发的文件怎么解压 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信