iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
Software Development

SQL / NoSQL的實作與比較系列 第 12

NoSQL Transaction

在傳統SQL有交易(Transaction)功能, 這次實作NoSQL類似的功能.

  1. 由於在PartiSQL上無法實作Transaction, 只能透過SDK或CLI.
    https://ithelp.ithome.com.tw/upload/images/20210926/20091942trmHjMQ3Yg.png

  2. 在面板右上角點CloudShell的圖示.
    https://ithelp.ithome.com.tw/upload/images/20210926/20091942GjJLnDBkLX.png

  3. 輸入AWS dynamodb ? 即可看到與DynamoDB相關的指令.
    https://ithelp.ithome.com.tw/upload/images/20210926/20091942dsd2cdJvVU.png

  4. 例如輸入aws dynamodb list-tables即可看到與面板相同的資料表.
    https://ithelp.ithome.com.tw/upload/images/20210926/20091942a3gaSPZ9QV.png

  5. 在CLI使用transact-write-items指令, 執行後即可看到在同一個transaction的兩筆資料都被寫入.

aws dynamodb transact-write-items --transact-items '[
    {
        "Put": {
            "TableName" : "APP",
            "Item" : {
                "Name" : {"S": "MobilAPP"},
                "Version" : {"S": "1.0"},
                "Description" : {"S": "Version 1"}
            }
        }
    },
    {
        "Put": {
            "TableName" : "APP",
            "Item" : {
                "Name" : {"S": "MobileAPP"},
                "Version" : {"S": "1.1"},
                "Description" : {"S": "Version 2"}
            }
        }
    }
]'

https://ithelp.ithome.com.tw/upload/images/20210926/20091942AO6vePvm6l.png

  1. 若將第二筆資料的TableName改為APP1, CLI會出現無此資源的錯誤訊息, 雖然第一筆是合法的, 但在同一個transaction內就會被Rollback, 不會被寫入.
    https://ithelp.ithome.com.tw/upload/images/20210926/20091942VAd0tnc465.png

上一篇
Secondary Index
下一篇
Global Table Replication
系列文
SQL / NoSQL的實作與比較30

尚未有邦友留言

立即登入留言