What Are Snowflake IDs?
Credit by: Wei-Yu Chen (感謝分享)
本文介紹了 Universal Unique Identifiers(UUIDs)的用途及其重要性,UUID 以固定且標準的方式為每個物件產生出獨立的 ID,且 產生出來的 ID 幾乎不可能會重複導致發生碰撞。
通常 UUID 由幾個部分組合而成,像是以時間、執行節點的 MAC address,或以 MD5 hash 來生成。UUID 以 128 bits 的數字組成,為了更方便識別及操作,通常都會以十六進制來表示,總長度為 36 個字(加上連字符號 -)。也因用來產生 UUID 的亂數種子包含了時間、節點資訊等參數,所以 UUID 也具有獨特性,在分散式系統執行也不容易發生碰撞。
而為了避免在你的 apps 裡實作 UUID 的產生機制,常見會使用兩種作法,分別是:Persistence Layer Generated ID 和 ID Servers。一種使用 Database 自動產生出來的序號來作為識別物件的 ID(如 MongoDB 的 ObjectID、MySQL 的 AUTO_INCREMENT ... 等),另一種是使用獨立的 ID server 來產生物件的 ID。
以 Database 來作為序號產生器會碰到一個問題,當你在每次建立新物件時,都會需要向資料庫讀取這個物件的「自動產生 ID」,假設應用程式的規模一大,效能勢必會大受影響。
而使用 ID server(也就是本文主要介紹的 Snowflake IDs)去產生 UUID 的話,就可利用架構於 app 以外的第三方序號產生器。以 Twitter 來說,平均每秒鐘有九千個推文,在高峰期間更甚至會出現一秒 143199 則推文的流量,他們所需要的 UUID 不僅要能夠支援龐大的架構,也需要在以非常快的速度產生出 ID,這也是 Snowflake 專案的由來。
因此,Twitter 以這幾個參數來組成 UUID:
- 保留不使用的位元,固定為 0 - 共 1 位
- Timestamp(以毫秒為單位) - 共 41 位
- 機器 ID - 共 10 位
- 序列號 - 從 0 ~ 4095 依序重複使用 - 共 12 位
雖然說以 ID servers 來產生 UUID 之後,效能還是會被這種架構拖累(必須在建立物件就去向 ID server 發送請求,並等待產生出來的 ID),但這種作法和資料庫系統相比起來已經讓效能降低的問題變得更輕微。
在本文當中介紹了三種常見的 ID 產生方式:在 local app 端產生 ID、在資料庫產生 ID、集中式的 ID server 產生 ID,這些策略的選擇也根據你的使用情境而定,畢竟沒有一種一套打天下的解決方案,在選擇時仍須衡量每個專案的需求。
https://betterprogramming.pub/uuid-generation-snowflake-identifiers-unique-2aed8b1771bc
mysql用途 在 紀老師程式教學網 Facebook 八卦
C++ 用在哪邊?看看這篇文章就知道了...
前不久,我貼了一篇「兩大基礎語言 C 與 Java 入門書推薦」,得到的回響很大!其中有人問:「C 跟 C++ 的差別在哪裡?」「C++ 在業界除了遊戲程式設計,其它領域用得廣嗎?」
我雖然知道答案,但要提出有力的佐證,說明「C++ 的確用在這些地方」,實在是讓我有點為難。剛好以前在中研院工作時,認識的同事轉貼一篇文章,可以強力的說明:「C++ 用途是相當廣泛的」。
幫各位整理一下使用 C++ 的領域:
* 作業系統:MS-Windows、Mac OS X(部分)、Google Chrome OS(部分)
* 手機系統:iPhone/iPad(部分)、黑莓機
* 套裝軟體:MS-Office、OpenOffice、WordPerfect、Adobe Reader、Evernote
* 資料庫:Oracle Database、MySQL、MS-SQL Server、SAP DB
* 瀏覽器:IE、Firefox、Safari、Chrome、Opera(五大瀏覽器都到齊了!)
其它還有些次要的軟體,就請大家自行參考原文連結囉!
http://www.lextrait.com/Vincent/implementations.html
mysql用途 在 吳老師excel函數與vba大數據教學 Facebook 八卦
單元01_建置Python開發環境(用懶人包快速建立)
開發環境和EXCEL VBA相較,Python真的太麻煩了,
VBA只要開啟開發人員標籤,就可以開始寫程式了,
另外EXCEL本身就可以充當資料庫來使用,資料也可以隨時存放,但這些都是Python無法做到的,原因應該和商用軟體(OFFICE)和自由軟體(PYTHON)的差異,商用軟體有收費自然就有必要幫大家把需要的環境做好,但衍生的就是需要不斷收費,但自由軟體因為不用收費,只要不是商業用途,都沒有費用問題,但也就需要什麼都自己來,有點像自助餐的概念,什麼都要自己來,所有建置環境也就需要自己準備好,甚至,建置環境的方法至少幾十種,
那一種最好?
我想為了Python的教學便利,不讓大家太麻煩,
所以幫大家準備好Pyhon建置環境懶人包,
只要將兩個檔案解壓縮到D碟(或C碟)中,
在直接執行Eclipse的執行檔就好,Eclipse是免安裝程式,可是是為Python相當好用的編輯器,開啟後在和Pyhton連結就好,再設定好編碼方式為UTF-8,就可以開始寫Python程式了,至於後面的VBA可以把EXCEL當成存取資料和資料庫來用,後面會再講解對應到Python的檔案與資料庫使用,以下說明如何使用。
教學影音(完整版在論壇):
https://terry55wu.blogspot.com/2020/02/01python.html
使用懶人包
先下載
eclipse_python.zip [下載]
Python37-32.zip [下載]
結語:
和EXCEL VBA相較之下,Pyhton的開發環境麻煩太多,
但帶來的好處是費用上的節省,
和未來有用不完的外掛可以擴充,所以如果你的應用需求很簡單,
建議用VBA就好,但如果需要更複雜的處理工作,
也不想付錢給軟體公司,Python是很好的選項。
課程理念與課程介紹:
因應大數據分析、物聯網、工業4.0的需求,能更容易的學會網路爬蟲、機器學習、物聯網、影像辨識、自動圖像報表等需求,其中以EXCEL VBA與Python程式開發最為熱門,因此將VBA的自動化延伸到PYTHON設計,讓學員能夠比較兩個工具的長處,並能相互協同應用。
課程內容
單元01_建置Python開發環境與程式測試
單元02_基本語法與結構控制件
單元03_迴圈資料結構與自訂函數
單元04_串列、字典與檔案與資料庫處理
單元05-1_開放資料處理CSV和JSON資料處理(停車與PM2.5)
單元05-2_開放資料處理練習題_新北市開放資料JSON
單元05-3_GOOGLE雲端當CSV來源與CSV處理
單元05-4_網頁資料擷取基礎與外匯
單元05-5_網頁資料擷取台彩與股市資料
單元05-6_擷取網頁上櫃股票行情
單元06_使用Pandas與處理_Excel_試算表
單元07_VBA與Phython連結MYSQL資料庫
單元08_視覺化報表使用圖表繪製Matplotlib
吳老師 2020/2/10
mysql用途 在 [Laravel][PHP][教學] Model#08 切換至MySQL Driver, 介紹 ... 的八卦
[Laravel][PHP][教學] Model#08 切換至MySQL Driver, 介紹Migration 機制用途與 ... ... <看更多>