2016年2月19日 星期五

NoSQL概念課 筆記

CAP

主從架構:MongoDB
P2P架構:Cassandra

BASE 原則
用於一致性與完整性要求低,但量大(volume)且快速(velocity)

scale up vs. scale out
scale up  必須使用SAN 等裝置才能分散

schema-less:

RDBMS: 商業邏輯、會員資料
NoSQL: linear, region hot spotting 問題,因為不方便

Facebook作法:mysql存會員資料,memcached 資料庫快取、Cassandra 站內信箱資訊、HBase訊息&反向索引
memory相關的solution毀損的機率高,memcached 沒有持久、Redis可以持久


  • Cassandra: 一致性相較比較慢、底層Java改成C++,效能10X, 可考慮採用C++版本
  • MongoDB: 資料量大寫入會變慢,不太算能夠scale out ,適合大量log,BSON(binary json), sharding, re-balancing
  • HBase: 非RDBMS的替代品、沒有太完整的SQL、anti-schema、想像成超大excel
  • GraphDB: 減少join, 適合連結的資料、推薦引擎,不適合大量log
  • RethinkDB: 10台server 每天處理上百萬篇文,好設定
NoSQL缺點:只有索引部份欄位可以快速查詢,對於secondary index比較弱
-> 搭配  elasticsearch 解決

note:
1~2 TB 的資料用SQL server 還可以
column的數量不會是效能瓶頸

Q. Hadoop 傳教士「王耀聰」提過每個大數據系統都是為了特定的需求而生,老師課堂中也提過不是拿一個 NoSQL 系統就直接來做各種應用,可能需要堆疊一些軟體。
不知道在實務上,雖然資料來源可能相同,是否是不同應用就使用不同的 NoSQL 系統叢集提供服務呢?

A. yes, 參考Facebook 的作法

Q. RDBMS 設計有所謂的「正規化」方法可以參考,NoSQL 系統的 key design 是否有一些經典的指引或設計方法呢?
A. refer to 10gen

Q. hbase 的 region hotspotting 之類的問題,是否亦存在於其他的 NoSQL 系統呢?(key/資料分割的困難)
A. yes










2016年2月17日 星期三

物聯網巨量資料分析基礎班 重點摘要

前提:

  1. 講師是同事,剛好也是同研究所的校友,看起來在公司有獲得提昇,已經漸漸脫離基層工程師的角色
  2. 藍字是個人的註解


重點摘要:

  1. 只要克服通訊協定 (log 收得回來) 都可以分析 不用拘泥 domain怎麼區分 
  2. 只有精準行銷真正利用 big data analysis 賺到錢 其他都是內部應用 
  3. 分析的加值在於「做出決策」,沒有決策都只是敘述統計的結果 
  4. 馬雲: IT 時代 利己,讓自己強大; Data Technology 時代 利他 他人強大後 自己才會強
  5. good practice : schema 先定義出來 (故事)  才去收資料 (材料)(資訊管理就學過,output 比 input 要先定義出來,否則garbage in garbage out,這篇很貼切)
  6. bad practice: 工程師角度思考   我有工具  有技術   所以我可以分析出東西...   這樣只能做出敘述統計
  7. 大致分類從業人員角色:programmer, data engineer, analyst, data scientist,前兩個技術層面,後兩者domain knowledge層面
  8. 不論技術或domain knowledge,找到自己想做的事就好了  不要為了想賺錢跳領域    因為兩個領域都有機會賺錢
  9. 介紹weka, etu image

Search Engine Optimization 課程筆記

serpo = search engine result page optimization

前台建議事項:
網址不要太長 (100字元, 3層)
大小寫有區分、用小寫
不要用 "_" 斷詞,用 "-"
中文不要太多字

title, meta description, keyword 中繼說明  不是排名要素,但很重要
note: meta keyword完全沒用

<h1> 網頁標題 HTML5以前的網頁 h1只要一個
內容第一段 放 同義字 相關字
<a> 站內連結 anchor text 錨文字  其他頁面要連到這頁 20% 即可,不要太多
<img> 圖片 網頁搜尋幫助少  但圖片搜尋有幫助
圖片佔 2/3螢幕以上  e.g. 600~1000 px  
檔名 用關鍵字
 <alt> alternate 替代文字 用關鍵字

網頁盡量圖文並茂
網頁速度 2010以後  SE把速度列入考量
Google pagespeed: 電腦版90 分  行動 80  ,這是目標  達不到就盡量吧

盡量提供社交分享功能 social signal
盡可能用RWD

後台建議事項:
使用關鍵字 Google keyword planner
提交 HTML or XML sitemap,多多益善,尤其非結構化資料比較多的時候
search console 網站管理員工具

rich snippet 複合式摘要 (ref: https://developers.google.com/structured-data/rich-snippets/)
          structured data
     
優化的比重:
          摘要片段 44%, 標題30%,  url 20%

SEO之後:
     數位資產優化 (DAO), app store / Google Play 優化, app indexing