日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

RDS MySQL同步至函數(shù)計算FC

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務造成影響,請務必仔細閱讀。

數(shù)據(jù)傳輸服務DTS(Data Transmission Service)支持將RDS MySQL實例的全量或增量數(shù)據(jù)同步至函數(shù)計算FC的指定函數(shù)。您可以編寫函數(shù)代碼,結合同步至函數(shù)中的數(shù)據(jù),對數(shù)據(jù)進行二次加工。

前提條件

  • 已創(chuàng)建源RDS MySQL實例。

  • 已創(chuàng)建請求處理程序類型處理事件請求的目標服務和函數(shù)資源。創(chuàng)建方式,請參見快速創(chuàng)建函數(shù)

注意事項

類型

說明

源庫限制

  • 待同步的表需具備主鍵或唯一約束,且字段具有唯一性。

  • 若源庫待同步的數(shù)據(jù)中,單條數(shù)據(jù)不能超過16 MB,否則DTS任務會因無法將數(shù)據(jù)寫入到函數(shù)計算FC而產生報錯。若您需要同步部分字段,可以使用ETL功能過濾大字段的數(shù)據(jù)。

  • 如同步對象為表級別,則單次同步任務僅支持同步至多1000張表。當超出數(shù)量限制,任務提交后會顯示請求報錯,此時建議您拆分待同步的表,分批配置多個任務,或者配置整庫的同步任務。

  • Binlog日志:

    • RDS MySQL默認已開啟Binlog,您需確保binlog_row_image的值為full,否則預檢查階段提示報錯,且無法成功啟動數(shù)據(jù)同步任務。參數(shù)設置方法,請參見設置實例參數(shù)

      重要
      • 若源實例為自建MySQL,則需開啟Binlog,并且設置binlog_format為row且binlog_row_image為full。

      • 若源實例自建MySQL是雙主集群(兩者互為主從),為保障DTS能獲取全部的Binlog日志,則您需開啟參數(shù)log_slave_updates。具體操作請參見為自建MySQL創(chuàng)建賬號并設置binlog

    • 如為增量同步任務,DTS要求源數(shù)據(jù)庫的本地Binlog日志保存24小時以上;如為全量同步和增量同步任務,DTS要求源數(shù)據(jù)庫的本地Binlog日志至少保留7天以上(您可在全量同步完成后將Binlog保存時間設置為24小時以上),否則DTS可能因無法獲取Binlog而導致任務失敗,極端情況下甚至可能會導致數(shù)據(jù)不一致或丟失。由于您所設置的Binlog日志保存時間低于DTS要求的時間進而導致的問題,不在DTS的SLA保障范圍內。如源為RDS MySQL,具體操作請參見管理本地日志(Binlog)

  • 在全量同步階段,請勿執(zhí)行庫或表結構變更的DDL操作,否則會導致數(shù)據(jù)同步任務失敗。

  • 在同步實例運行期間,不記錄Binlog的變更操作所產生的數(shù)據(jù)(例如通過物理備份功能恢復、級聯(lián)操作等產生的數(shù)據(jù)),不會被同步到目標庫。

    說明

    若有該情況,您可以在業(yè)務允許的前提下,通過修改同步對象功能,移除該數(shù)據(jù)所屬的庫表,然后將該數(shù)據(jù)所屬的庫表重新添加到待同步對象。更多信息,請參見修改同步對象

  • 若源庫為8.0.23及以后版本的MySQL數(shù)據(jù)庫,且待同步的數(shù)據(jù)中包含不可見的隱藏列,則可能會因為無法獲取該列的數(shù)據(jù)而導致數(shù)據(jù)丟失。

    說明
    • 您可以使用ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;命令,將該隱藏列設置為可見。更多信息,請參見Invisible Columns

    • 無主鍵的表會自動生成不可見的隱藏主鍵,您也需要將該隱藏主鍵設置為可見。更多信息,請參見Generated Invisible Primary Keys

其他限制

  • 不支持映射功能。

  • 不支持跨地域的同步任務。

  • 執(zhí)行數(shù)據(jù)同步前需評估源庫和目標庫的性能,同時建議業(yè)務低峰期執(zhí)行數(shù)據(jù)同步。否則全量數(shù)據(jù)初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數(shù)據(jù)庫的負載上升。

  • 全量初始化會并發(fā)執(zhí)行INSERT操作,因此含全量同步任務的目標函數(shù)的并發(fā)度不能太小。調整函數(shù)并發(fā)度的操作,請參見設置實例并發(fā)度

  • 如同步對象為單個或多個表(非整庫),那么在數(shù)據(jù)同步時,勿對源庫的同步對象使用pt-online-schema-change等類似工具執(zhí)行在線DDL變更,否則會導致同步失敗。您可以使用數(shù)據(jù)管理DMS(Data Management)來執(zhí)行在線DDL變更,請參見不鎖表結構變更

  • 請避免多個DTS任務同步到同一個目標函數(shù),建議不同任務使用不同的函數(shù)進行數(shù)據(jù)隔離,否則可能會造成目標端數(shù)據(jù)混亂。

  • 若RDS MySQL實例已開通全密態(tài)(EncDB)功能,則不支持全量數(shù)據(jù)同步。

  • 若實例運行失敗,DTS技術支持人員將在8小時內嘗試恢復該實例。在恢復失敗實例的過程中,可能會對該實例進行重啟、調整參數(shù)等操作。

    說明

    在調整參數(shù)時,僅會修改實例的參數(shù),不會對數(shù)據(jù)庫中的參數(shù)進行修改。可能修改的參數(shù),包括但不限于修改實例參數(shù)中的參數(shù)。

特殊情況

  • 當源庫為自建MySQL時:

    • 在同步時,如果源庫進行主備切換,將會導致同步任務失敗。

    • 由于DTS的延遲時間是根據(jù)同步到目標庫最后一條數(shù)據(jù)的時間戳和當前時間戳對比得出,源庫長時間未執(zhí)行DML操作可能導致延遲信息不準確。如果任務顯示的延遲時間過大,您可以在源庫執(zhí)行一個DML操作來更新延遲信息。

      說明

      如果同步對象選擇為整庫,您還可以創(chuàng)建心跳表,心跳表每秒定期更新或者寫入數(shù)據(jù)。

    • DTS會在源庫定時執(zhí)行CREATE DATABASE IF NOT EXISTS `test`命令以推進Binlog位點。

  • 當源庫為RDS MySQL時:

    • 不記錄事務日志的RDS MySQL實例(如RDS MySQL 5.6版本的只讀實例)不支持作為源庫。

    • DTS會在源庫定時執(zhí)行CREATE DATABASE IF NOT EXISTS `test`命令以推進Binlog位點。

費用說明

同步類型

鏈路配置費用

全量數(shù)據(jù)同步

不收費。

增量數(shù)據(jù)同步

收費,詳情請參見計費概述

支持同步的SQL操作

操作類型

SQL操作語句

DML

INSERT、UPDATE、DELETE

DDL

  • CREATE TABLE、ALTER TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE

  • CREATE VIEW、ALTER VIEW、DROP VIEW

  • CREATE PROCEDURE、ALTER PROCEDURE、DROP PROCEDURE

  • CREATE FUNCTION、DROP FUNCTION、CREATE TRIGGER、DROP TRIGGER

  • CREATE INDEX、DROP INDEX

數(shù)據(jù)庫賬號的權限要求

數(shù)據(jù)庫

所需權限

創(chuàng)建及授權方式

RDS MySQL

待同步對象的讀權限。

創(chuàng)建賬號修改賬號權限

說明

若您使用的源庫賬號不是通過RDS MySQL控制臺創(chuàng)建且授權,您需確保該賬號具備REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和SELECT權限。

操作步驟

  1. 進入目標地域的同步任務列表頁面(二選一)。

    通過DTS控制臺進入

    1. 登錄數(shù)據(jù)傳輸服務DTS控制臺

    2. 在左側導航欄,單擊數(shù)據(jù)同步

    3. 在頁面左上角,選擇同步實例所屬地域。

    通過DMS控制臺進入

    說明

    實際操作可能會因DMS的模式和布局不同,而有所差異。更多信息,請參見極簡模式控制臺自定義DMS界面布局與樣式

    1. 登錄DMS數(shù)據(jù)管理服務

    2. 在頂部菜單欄中,選擇集成與開發(fā) > 數(shù)據(jù)傳輸(DTS) > 數(shù)據(jù)同步

    3. 同步任務右側,選擇同步實例所屬地域。

  2. 單擊創(chuàng)建任務,進入任務配置頁面。

  3. 可選:在頁面右上角,單擊試用新版配置頁

    說明
    • 若您已進入新版配置頁(頁面右上角的按鈕為返回舊版配置頁),則無需執(zhí)行此操作。

    • 新版配置頁和舊版配置頁部分參數(shù)有差異,建議使用新版配置頁。

  4. 配置源庫及目標庫信息。

    類別

    配置

    說明

    任務名稱

    DTS會自動生成一個任務名稱,建議配置具有業(yè)務意義的名稱(無唯一性要求),便于后續(xù)識別。

    源庫信息

    選擇已有連接信息

    您可以按實際需求,選擇是否使用已有數(shù)據(jù)庫實例。

    • 如使用已有實例,下方數(shù)據(jù)庫信息將自動填入,您無需重復輸入。

    • 如不使用已有實例,您需要配置下方的數(shù)據(jù)庫信息。

    說明

    數(shù)據(jù)庫類型

    選擇MySQL

    接入方式

    選擇云實例

    實例地區(qū)

    選擇源RDS MySQL實例所屬地域。

    是否跨阿里云賬號

    本示例為同一阿里云賬號間的同步,選擇不跨賬號

    RDS實例ID

    選擇源RDS MySQL實例ID。

    數(shù)據(jù)庫賬號

    填入源RDS MySQL實例的數(shù)據(jù)庫賬號,權限要求請參見數(shù)據(jù)庫賬號的權限要求

    數(shù)據(jù)庫密碼

    填入該數(shù)據(jù)庫賬號對應的密碼。

    連接方式

    根據(jù)需求選擇非加密連接SSL安全連接。如果設置為SSL安全連接,您需要提前開啟RDS MySQL實例的SSL加密功能,詳情請參見使用云端證書快速開啟SSL鏈路加密

    目標庫信息

    選擇已有連接信息

    您可以按實際需求,選擇是否使用已有數(shù)據(jù)庫實例。

    • 如使用已有實例,下方數(shù)據(jù)庫信息將自動填入,您無需重復輸入。

    • 如不使用已有實例,您需要配置下方的數(shù)據(jù)庫信息。

    說明

    數(shù)據(jù)庫類型

    選擇函數(shù)計算 FC

    接入方式

    選擇云實例

    實例地區(qū)

    默認與源庫實例地區(qū)一致,且不支持修改。

    服務

    選擇目標函數(shù)計算FC的服務名稱。

    函數(shù)

    選擇目標函數(shù)計算FC用于接收數(shù)據(jù)的函數(shù)。

    服務版本和別名

    請根據(jù)實際情況進行選擇。

    • 默認版本服務版本固定為LATEST

    • 指定版本:您還需選擇服務版本

    • 指定別名:您還需選擇服務別名

    說明

    目標函數(shù)計算FC的專有名詞,請參見基本概念

  5. 配置完成后,單擊頁面下方的測試連接以進行下一步

    如果源或目標數(shù)據(jù)庫是阿里云數(shù)據(jù)庫實例(例如RDS MySQL云數(shù)據(jù)庫MongoDB版等),DTS會自動將對應地區(qū)DTS服務的IP地址添加到阿里云數(shù)據(jù)庫實例的白名單中;如果源或目標數(shù)據(jù)庫是ECS上的自建數(shù)據(jù)庫,DTS會自動將對應地區(qū)DTS服務的IP地址添加到ECS的安全規(guī)則中,您還需確保自建數(shù)據(jù)庫沒有限制ECS的訪問(若數(shù)據(jù)庫是集群部署在多個ECS實例,您需要手動將DTS服務對應地區(qū)的IP地址添加到其余每個ECS的安全規(guī)則中);如果源或目標數(shù)據(jù)庫是IDC自建數(shù)據(jù)庫或其他云數(shù)據(jù)庫,則需要您手動添加對應地區(qū)DTS服務的IP地址,以允許來自DTS服務器的訪問。DTS服務的IP地址,請參見DTS服務器的IP地址段

    警告

    DTS自動添加或您手動添加DTS服務的公網IP地址段可能會存在安全風險,一旦使用本產品代表您已理解和確認其中可能存在的安全風險,并且需要您做好基本的安全防護,包括但不限于加強賬號密碼強度防范、限制各網段開放的端口號、內部各API使用鑒權方式通信、定期檢查并限制不需要的網段,或者使用通過內網(專線/VPN網關/智能網關)的方式接入。

  6. 配置任務對象。

    1. 對象配置頁面,配置待同步的對象。

      配置

      說明

      同步類型

      固定選中增量同步。若您有存量數(shù)據(jù)的同步需求,您還需要同時選中全量同步

      數(shù)據(jù)格式

      同步到FC函數(shù)中的數(shù)據(jù)存儲格式,當前僅支持Canal Json

      說明

      Canal Json的參數(shù)說明和示例,請參見Canal Json說明

      源庫對象

      源庫對象框中單擊待同步對象,然后單擊向右將其移動至已選擇對象框。

      說明

      同步對象的選擇粒度為庫或表。

      已選擇對象

      請在已選擇對象框中確認待同步的數(shù)據(jù)。

      說明

      若您需要移除已選擇的對象,可以在已選擇對象框中勾選目標對象,并單擊zuoyi進行移除。

    2. 單擊下一步高級配置,進行高級參數(shù)配置。

      配置

      說明

      選擇調度該任務的專屬集群

      DTS默認將任務調度到共享集群上,您無需選擇。若您希望任務更加穩(wěn)定,可以購買專屬集群來運行DTS同步任務。更多信息,請參見什么是DTS專屬集群

      源庫、目標庫無法連接后的重試時間

      在同步任務啟動后,若源庫或目標庫連接失敗則DTS會報錯,并會立即進行持續(xù)的重試連接,默認持續(xù)重試時間為720分鐘,您也可以在取值范圍(10~1440分鐘)內自定義重試時間,建議設置30分鐘以上。如果DTS在設置的重試時間內重新連接上源庫、目標庫,同步任務將自動恢復。否則,同步任務將會失敗。

      說明
      • 針對同源或者同目標的多個DTS實例,如DTS實例A和DTS實例B,設置網絡重試時間時A設置30分鐘,B設置60分鐘,則重試時間以低的30分鐘為準。

      • 由于連接重試期間,DTS將收取任務運行費用,建議您根據(jù)業(yè)務需要自定義重試時間,或者在源和目標庫實例釋放后盡快釋放DTS實例。

      源庫、目標庫出現(xiàn)其他問題后的重試時間

      在同步任務啟動后,若源庫或目標庫出現(xiàn)非連接性的其他問題(如DDL或DML執(zhí)行異常),則DTS會報錯并會立即進行持續(xù)的重試操作,默認持續(xù)重試時間為10分鐘,您也可以在取值范圍(1~1440分鐘)內自定義重試時間,建議設置10分鐘以上。如果DTS在設置的重試時間內相關操作執(zhí)行成功,同步任務將自動恢復。否則,同步任務將會失敗。

      重要

      源庫、目標庫出現(xiàn)其他問題后的重試時間的值需要小于源庫、目標庫無法連接后的重試時間的值。

      是否限制全量遷移速率

      在全量同步階段,DTS將占用源庫和目標庫一定的讀寫資源,可能會導致數(shù)據(jù)庫的負載上升。您可以根據(jù)實際情況,選擇是否對全量同步任務進行限速設置(設置每秒查詢源庫的速率QPS每秒全量遷移的行數(shù)RPS每秒全量遷移的數(shù)據(jù)量(MB)BPS),以緩解目標庫的壓力。

      說明

      僅當同步類型選擇了全量同步時才可以配置。

      是否限制增量同步速率

      您也可以根據(jù)實際情況,選擇是否對增量同步任務進行限速設置(設置每秒增量同步的行數(shù)RPS每秒增量同步的數(shù)據(jù)量(MB)BPS),以緩解目標庫的壓力。

      環(huán)境標簽

      您可以根據(jù)實際情況,選擇用于標識實例的環(huán)境標簽。本示例無需選擇。

      是否去除正反向任務的心跳表sql

      根據(jù)業(yè)務需求選擇是否在DTS實例運行時,在源庫中寫入心跳SQL信息。

      • :不在源庫中寫入心跳SQL信息,DTS實例可能會顯示有延遲。

      • :在源庫中寫入心跳SQL信息,可能會影響源庫的物理備份和克隆等功能。

      配置ETL功能

      選擇是否配置ETL功能。關于ETL的更多信息,請參見什么是ETL

      監(jiān)控告警

      是否設置告警,當同步失敗或延遲超過閾值后,將通知告警聯(lián)系人。

  7. 保存任務并進行預檢查。

    • 若您需要查看調用API接口配置該實例時的參數(shù)信息,請將鼠標光標移動至下一步保存任務并預檢查按鈕上,然后單擊氣泡中的預覽OpenAPI參數(shù)

    • 若您無需查看或已完成查看API參數(shù),請單擊頁面下方的下一步保存任務并預檢查

    說明
    • 在同步作業(yè)正式啟動之前,會先進行預檢查。只有預檢查通過后,才能成功啟動同步作業(yè)。

    • 如果預檢查失敗,請單擊失敗檢查項后的查看詳情,并根據(jù)提示修復后重新進行預檢查。

    • 如果預檢查產生警告:

      • 對于不可以忽略的檢查項,請單擊失敗檢查項后的查看詳情,并根據(jù)提示修復后重新進行預檢查。

      • 對于可以忽略無需修復的檢查項,您可以依次單擊點擊確認告警詳情確認屏蔽確定重新進行預檢查,跳過告警檢查項重新進行預檢查。如果選擇屏蔽告警檢查項,可能會導致數(shù)據(jù)不一致等問題,給業(yè)務帶來風險。

  8. 購買實例。

    1. 預檢查通過率顯示為100%時,單擊下一步購買

    2. 購買頁面,選擇數(shù)據(jù)同步實例的計費方式、鏈路規(guī)格,詳細說明請參見下表。

      類別

      參數(shù)

      說明

      信息配置

      計費方式

      • 預付費(包年包月):在新建實例時支付費用。適合長期需求,價格比按量付費更實惠,且購買時長越長,折扣越多。

      • 后付費(按量付費):按小時扣費。適合短期需求,用完可立即釋放實例,節(jié)省費用。

      資源組配置

      實例所屬的資源組,默認為default resource group。更多信息,請參見什么是資源管理

      鏈路規(guī)格

      DTS為您提供了不同性能的同步規(guī)格,同步鏈路規(guī)格的不同會影響同步速率,您可以根據(jù)業(yè)務場景進行選擇。更多信息,請參見數(shù)據(jù)同步鏈路規(guī)格說明

      訂購時長

      在預付費模式下,選擇包年包月實例的時長和數(shù)量,包月可選擇1~9個月,包年可選擇1年、2年、3年和5年。

      說明

      該選項僅在付費類型為預付費時出現(xiàn)。

    3. 配置完成后,閱讀并勾選《數(shù)據(jù)傳輸(按量付費)服務條款》

    4. 單擊購買并啟動,并在彈出的確認對話框,單擊確定

      您可在數(shù)據(jù)同步界面查看具體任務進度。

后續(xù)步驟

目標服務接收的數(shù)據(jù)格式

FC接收到的數(shù)據(jù)類型為Object,源端增量數(shù)據(jù)以數(shù)組的方式存儲在Records字段中,數(shù)組中的每一個元素為一條Object類型的數(shù)據(jù)記錄。其中Object字段和含義如下表所示。

說明

FC接收到的數(shù)據(jù)有DML和DDL兩種:

  • DDL:記錄更改數(shù)據(jù)庫的結構信息。

  • DML:記錄管理數(shù)據(jù)庫中的數(shù)據(jù)信息。

字段

類型

說明

isDdl

Boolean

是否為DDL操作。

  • True:是。

  • False:否。

type

String

SQL操作的類型。

  • DML操作:DELETEUPDATEINSERT

  • DDL操作:固定為DDL

重要

全量任務階段固定為INIT

database

String

MySQL的數(shù)據(jù)庫名。

table

String

MySQL的表名。

pkNames

String

MySQL表的主鍵名。

es

Long

操作在源庫的執(zhí)行時間,13位Unix時間戳,單位為毫秒。

說明

Unix時間戳轉換工具可用搜索引擎獲取。

ts

Long

操作開始寫入到目標庫的時間,13位Unix時間戳,單位為毫秒。

說明

Unix時間戳轉換工具可用搜索引擎獲取。

data

Object Array

Array中僅包含一個元素,類型為Object,其中Key為列名,value為對應的值。

old

Object Array

存儲更新前的數(shù)據(jù),格式同 data 字段。

重要

僅當typeDELETE時存在,格式與data字段相同。

sql

String

  • type為DML(即DELETEUPDATEINSERT)時值為空。

  • typeDDL時,表示執(zhí)行的SQL語句。

id

Int

操作的序列號。

DDL操作數(shù)據(jù)格式示例

ALTER TABLE操作

SQL語句

ALTER TABLE `demoTable` 
	ADD COLUMN `address` varchar(20) NULL AFTER `sex`
;

FC接收到的數(shù)據(jù)

{
	'Records': [{
		'type': 'DDL',
		'serverId': '27142679',
		'es': 1690000000000,
		'sql': '/* Query from DMS-WEBSQL-0-Eid_15682857722282385K by user 14xxxxxxxx */ ALTER TABLE `demoDatabase`.`DDL` \n\tADD COLUMN `address` varchar(20) NULL AFTER `sex`',
		'database': 'demoDatabase',
		'id': 63151,
		'isDdl': True,
		'table': 'demoTable',
		'ts': 1690000000000
	}]
}

DML操作數(shù)據(jù)格式示例

插入數(shù)據(jù)

SQL語句

INSERT INTO demoTable VALUES("xiaoming", 10, "man");

FC接收到的數(shù)據(jù)

{
	'Records': [{
		'data': [{
			'sex': 'man',
			'name': 'xiaoming',
			'age': '10'
		}],
		'pkNames': ['name'],
		'type': 'INSERT',
		'serverId': '27142678',
		'es': 1690000000000,
		'sql': '',
		'database': 'demoDatabase',
		'sqlType': {
			'sex': 253,
			'name': 253,
			'age': 3
		},
		'mysqlType': {
			'sex': 'varchar',
			'name': 'varchar',
			'age': 'int'
		},
		'id': 62051,
		'isDdl': False,
		'table': 'demoTable',
		'ts': 1690000000000
	}]
}

更新數(shù)據(jù)

SQL語句

UPDATE `demoDatabase`.`demoTable` SET `age`=11 WHERE `name`='xiaoming';

FC接收到的數(shù)據(jù)

{
	'Records': [{
		'data': [{
			'sex': 'man',
			'name': 'xiaoming',
			'age': '11'
		}],
		'pkNames': ['name'],
		'old': [{
			'sex': 'man',
			'name': 'xiaoming',
			'age': '10'
		}],
		'type': 'UPDATE',
		'serverId': '27142679',
		'es': 1690000000000,
		'sql': '',
		'database': 'demoDatabase',
		'sqlType': {
			'sex': 253,
			'name': 253,
			'age': 3
		},
		'mysqlType': {
			'sex': 'varchar',
			'name': 'varchar',
			'age': 'int'
		},
		'id': 62373,
		'isDdl': False,
		'table': 'demoTable',
		'ts': 1690000000000
	}]
}

刪除數(shù)據(jù)

SQL語句

DELETE FROM `demoDatabase`.`demoTable` WHERE `name`='xiaoming';

FC接收到的數(shù)據(jù)

{
	'Records': [{
		'data': [{
			'sex': 'man',
			'name': 'xiaoming',
			'age': '11'
		}],
		'pkNames': ['name'],
		'type': 'DELETE',
		'serverId': '27142679',
		'es': 1690000000000,
		'sql': '',
		'database': 'demoDatabase',
		'sqlType': {
			'sex': 253,
			'name': 253,
			'age': 3
		},
		'mysqlType': {
			'sex': 'varchar',
			'name': 'varchar',
			'age': 'int'
		},
		'id': 62635,
		'isDdl': False,
		'table': 'demoTable',
		'ts': 1690000000000
	}]
}