天天看點

Dynamodb專題系列第一講

dynamodb是aws NOSQL全托管資料庫。

1.所有的表都是分區的,主鍵有兩種

   a》隻設定一個partition key

   b》設定一個partion key和一個range key,相當于聯合主鍵

2.它可以根據表的資料量以及capacity unit自動進行分區擴充

   a》每個分區最大10GB,如果表的資料量超過10GB,會自動建立兩個分區,把資料平均分散到建立的兩個分區裡面,然後删除原來的分區,也就是由原來的一個分區變成兩個新的分區

   b》一個分區最大支援3000個read capacity unit和1000個write capacity unit,如果capacity unit發生變化,有可能會導緻分區數量的增加,比如

        原來的capacity是 read 1000   write   500   1000/3000+500/1000=0.888  1個分區

        新的capacity是     read 1000   write   1000   1000/3000+1000/1000=1.333  2個分區

3.No schema,建表的時候隻需要指定主鍵,其它字段在往表裡面插入資料的時候動态指定,每條記錄可以有不同數量的字段,不同記錄的同名字段,其類型也可以不同

4.多種字段類型,支援json資料的存儲

Scalar類型,也就是單值類型

    String  abcd

    Number  24.56

    Boolean true,false

    Binary   二進制資料,比如圖檔

    Null 不明或者未定義

Document類型

    Map json格式

    List  清單,清單内可以存儲不同類型的item

    Set   集合 集合記憶體儲的item的類型必須一緻,比如都是String,或者都是Number

5.支援TTL,如果希望表裡面的記錄隻存在一個時間段,過期自動删除的話,可以指定一個ttl字段,這樣dynamodb會根據存留期限的數值來自動幫助你進行過期資料的删除工作,比如兩個小時,一周,兩年,期限任意

6.表的操作支援stream,也就是流。通過開啟stream,可以把對表的增删改操作記錄到stream管道裡面,然後我們可以通過trigger來觸發lambda函數,來消費流裡面的資料。啟用stream的話,有三種類型可以選擇

a》only new image 隻輸出修改後的record   比如 insert

b》only old image 隻輸出修改前的record     比如delete

c》new image and old image 變更前後的record都輸出 比如 update

7.支援全局二級索引和本地二級索引,也就是GSI和LSI

GSI支援跨分區檢索

LSI隻支援同一個分區内部的檢索

8.不支援外鍵關聯,也不支援表聯結,支援begins_with,contains等條件表達式

9.檢索包括query和scan

query通過主鍵或者索引來檢索,速度較快

scan可以通過任意字段進行檢索,因為不走索引和分區,速度較慢,全表查詢

10.支援batch檢索和batch插入和删除

BatchGetItem每次最大可以傳回100條record

BatchWriteItem每次最大可以寫入或者删除25條record

11.針對capacity unit進行按小時收費,比如write capacity unit 10unit一個小時0.00742USD,read capacity unit 50unit一個小時0.00742USD

12.檢索分為最終一緻性和強一緻性,預設是最終一緻性

強整合性的話,1 read capacity unit,4K以内的record,1秒可以讀取1條

最終一緻性的話,1秒可以讀取2條

1 write capacity unit,1K以内的record,1秒可以寫入1條,如果record占2K,同樣1秒寫入一條的話,則需要2個write capacity unit

繼續閱讀