閱讀146 返回首頁    go 汽車大全


BatchWriteRow__API 概覽_API 參考_表格存儲-阿裏雲

行為:

批量插入、修改或刪除一個或多個表中的若幹行數據。

BatchWriteRow 操作可視為多個 PutRow、UpdateRow、DeleteRow 操作的集合。各個操作獨立執行,獨立返回結果,獨立計算服務能力單元。

與執行大量的單行寫操作相比,使用 BatchWriteRow 操作可以有效減少請求的響應時間,提高數據的寫入速率。

請求結構:

  1. message BatchWriteRowRequest {
  2. repeated TableInBatchWriteRowRequest tables = 1;
  3. }

tables:

  • 類型:repeated TableInBatchWriteRowRequest

  • 是否必要參數:是。

  • 指定了需要要執行寫操作的行信息。

  • 以下情況都會返回整體錯誤:

    • tables 中任一表不存在。

    • tables 中包含同名的表。

    • tables 中任一表名表名不符合表名命名規範

    • tables 中任一行操作未指定主鍵、主鍵列名稱不符合規範或者主鍵列類型不正確。

    • tables 中任一屬性列名稱不符合列名命名規範

    • tables 中任一行操作存在與主鍵列同名的屬性列。

    • tables 中任一主鍵列或者屬性列的值大小超過上限

    • tables 中任一表中存在主鍵完全相同的請求。

    • tables 中所有表總的行操作個數超過 200 個,或者其含有的總數據大小超過 4 M。

    • tables 中任一表內沒有包含行操作,則返回 OTSParameterInvalidException 的錯誤。

    • tables 中任一 PutRowInBatchWriteRowRequest 包含的 Column 個數超過 1024 個。

    • tables 中任一 UpdateRowInBatchWriteRowRequest 包含的 ColumnUpdate 個數超過 1024 個。

響應消息結構:

  1. message BatchWriteRowResponse {
  2. repeated TableInBatchWriteRowResponse tables = 1;
  3. }

tables:

  • 類型:TableInBatchWriteRowResponse

  • 對應了每個 table 下各操作的響應信息,包括是否成功執行,錯誤碼和消耗的服務能力單元。

  • 響應消息中 TableInBatchWriteRowResponse 對象的順序與 BatchWriteRowRequest 中的 TableInBatchWriteRowRequest 對象的順序相同;每個 TableInBatchWriteRowRequest 中 put_rows、update_rows、delete_rows 包含的 RowInBatchWriteRowResponse 對象的順序分別與 TableInBatchWriteRowRequest 中 put_rows、update_rows、delete_rows 包含的 PutRowInBatchWriteRowRequest、UpdateRowInBatchWriteRowRequest 和 DeleteRowInBatchWriteRowRequest 對象的順序相同。

  • 若某行讀取失敗,該行所對應的 RowInBatchWriteRowResponse 中 is_ok 將為 false。

注意:BatchWriteRow 操作可能會在行級別部分失敗,此時返回的 HTTP 狀態碼仍為 200。應用程序必須對 RowInBatchWriteRowResponse 中的 error 進行檢查,確認每一行的執行結果並進行相應的處理。

服務能力單元消耗:

請求示例:

  1. BatchWriteRowRequest {
  2. tables {
  3. table_name: "consume_history"
  4. put_rows {
  5. condition {
  6. row_existence: IGNORE
  7. }
  8. primary_key {
  9. name: "CardID"
  10. value {
  11. type: STRING
  12. v_string: "2007035023"
  13. }
  14. }
  15. primary_key {
  16. name: "SellerID"
  17. value {
  18. type: STRING
  19. v_string: "00022"
  20. }
  21. }
  22. primary_key {
  23. name: "DeviceID"
  24. value {
  25. type: STRING
  26. v_string: "061104"
  27. }
  28. }
  29. primary_key {
  30. name: "OrderNumber"
  31. value {
  32. type: INTEGER
  33. v_int: 142857
  34. }
  35. }
  36. attribute_columns {
  37. name: "Amount"
  38. value {
  39. type: DOUBLE
  40. v_double: 2.5
  41. }
  42. }
  43. attribute_columns {
  44. name: "Remarks"
  45. value {
  46. type: STRING
  47. v_string: "ice cream"
  48. }
  49. }
  50. }
  51. update_rows {
  52. condition {
  53. row_existence: EXPECT_EXIST
  54. }
  55. primary_key {
  56. name: "CardID"
  57. value {
  58. type: STRING
  59. v_string: "2007035023"
  60. }
  61. }
  62. primary_key {
  63. name: "SellerID"
  64. value {
  65. type: STRING
  66. v_string: "00026"
  67. }
  68. }
  69. primary_key {
  70. name: "DeviceID"
  71. value {
  72. type: STRING
  73. v_string: "065499"
  74. }
  75. }
  76. primary_key {
  77. name: "OrderNumber"
  78. value {
  79. type: INTEGER
  80. v_int: 153846
  81. }
  82. }
  83. attribute_columns {
  84. type: PUT
  85. name: "Amount"
  86. value {
  87. type: DOUBLE
  88. v_double: 1
  89. }
  90. }
  91. attribute_columns {
  92. type: DELETE
  93. name: "Remarks"
  94. }
  95. }
  96. delete_rows {
  97. condition {
  98. row_existence: IGNORE
  99. }
  100. primary_key {
  101. name: "CardID"
  102. value {
  103. type: STRING
  104. v_string: "2007035023"
  105. }
  106. }
  107. primary_key {
  108. name: "SellerID"
  109. value {
  110. type: STRING
  111. v_string: "00026"
  112. }
  113. }
  114. primary_key {
  115. name: "DeviceID"
  116. value {
  117. type: STRING
  118. v_string: "065499"
  119. }
  120. }
  121. primary_key {
  122. name: "OrderNumber"
  123. value {
  124. type: INTEGER
  125. v_int: 166666
  126. }
  127. }
  128. }
  129. }
  130. }

響應示例:

  1. tables {
  2. table_name: "consume_history"
  3. put_rows {
  4. is_ok: true
  5. consumed {
  6. capacity_unit {
  7. write: 1
  8. }
  9. }
  10. }
  11. update_rows {
  12. consumed {
  13. capacity_unit {
  14. write: 1
  15. }
  16. }
  17. }
  18. delete_rows {
  19. consumed {
  20. capacity_unit {
  21. write: 1
  22. }
  23. }
  24. }
  25. }

最後更新:2016-11-23 16:03:56

  上一篇:go BatchGetRow__API 概覽_API 參考_表格存儲-阿裏雲
  下一篇:go CreateTable__API 概覽_API 參考_表格存儲-阿裏雲