# TiDB Cloud Dedicated Workshop

## 概述

此练习包含一系列实践实验和任务，帮助您了解 TiDB Cloud Dedicated 集群的各项功能。

### Tasks

+ 创建 `TiDB Cloud Dedicated` 集群，以及暂停和恢复您的集群
+ 连接到 `TiDB Cloud Dedicated` 集群
+ 备份 `TiDB Cloud Dedicated` 集群
+ 对 `TiDB Cloud Dedicated` 集群进行扩容和缩容
+ 向 `TiDB Cloud Dedicated` 集群导入数据


### 实验时长

+ 本实验预计约 120 分钟完成。

> [!TIP]
> 实验室环境部署完成后，点击底部栏上的 **前进** 进入 **模块 1**。

## 模块 1：加入 `PE Lab Dedicated Pool` 组织

### 步骤 1. 查看您的邮箱

+ 在您的电子邮箱收件箱中，找到由 TiDB Cloud 发送的邀请邮件。点击邮件中的 `Accept` 按钮，加入 `PE Lab Dedicated Pool` 组织。

  ![80%](https://lab-static.pingcap.com/quick-demo/demo_501_Accept_the_Invitation01.png)

### 步骤 2. 加入 workshop TiDB Cloud 组织

+ 点击 `Accept`后，您将被导向下一页，在此您应登录您的 TiDB Cloud 账户。如果您还没有 TiDB Cloud 账户，可以点击 `Sign Up` 来创建一个。

  ![80%](https://lab-static.pingcap.com/quick-demo/demo_501_Accept_the_Invitation02.png)

+ 登录您的 TiDB Cloud 账户后，请确认您的组织和项目。

+ 您的组织名称应为 `PE Lab Dedicated Pool`。

+ 您的项目应为 `project-0xx` (`xx` 是两位随机数字)。

  ![80%](https://lab-static.pingcap.com/quick-demo/demo_501_Confirm_Organization_and_Project01.png)

+ 如果您的组织和项目与上述描述不同，请点击 [此处](https://tidbcloud.com/console/clusters?orgId=1372813089209246378) 进入相应的组织和项目。

+ 点击左下角的 `Organizations` 名称，切换到 `PE Lab Dedicated Pool` 组织。

+ 点击左下角的 `Projects` 名称，切换到 `project-0xx` 项目。

## 模块 2：创建 `TiDB Cloud Dedicated` 集群，以及暂停和恢复您的集群

### 步骤 1. 在 `Clusters` 页面，点击 `Create Cluster`。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreateTier_aa_002_20230110.png)


### 步骤 2. 在 `Create Cluster` 页面，选择 `Dedicated`，然后选择云服务提供商和区域。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreateDedicatedTierSetup01_aa_003_20230110.png)


### 步骤 3. 分别配置集群的 TiDB、TiKV 和 TiFlash（可选）规模。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreateDedicatedTierSetup02_aa_003_20230110.png)


### 步骤 4. 如有必要，更新默认的集群名称和端口号。 

+如果这是您当前项目的第一个集群，且尚未为该项目配置 CIDR，则需要设置项目 CIDR。如果您没有看到 Project CIDR 字段，则意味着该项目已配置 CIDR。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreateDedicatedTierSetup03_aa_003_20230110.png)

### 步骤 5. 等待您的 TiDB Cloud 集群创建完成。

### 步骤 6. 点击右上角的下拉菜单，然后点击 `Pause`.

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_PauseCluster01_aa_002_20230110.png)


### 步骤 7. 暂停集群。

+ 在 `Pause your cluster` 窗口中，您可以查看集群暂停时成本和集群功能的变化，然后点击 `Pause`。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_PauseCluster02_aa_002_20230110.png)


### 步骤 8. 集群状态从 `AVAILABLE` 变为 `PAUSED`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_PauseCluster03_aa_002_20230110.png)


### 步骤 9. 点击右上角的下拉菜单，然后点击 `Resume`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ResumeCluster01_aa_002_20230110.png)


### 步骤 10. 在 `Resume your cluster` 窗口中，点击 `Resume`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ResumeCluster02_aa_002_20230110.png)


### 步骤 11. 等待您的 TiDB Cloud 集群恢复。

## 模块 3：通过标准连接方式连接到 `TiDB Cloud Dedicated` 集群

### 步骤 1. 进入 overview 页面。

+ 在 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)


### 步骤 2. 前往 security settings. 

+ 在 `Overview` 页面，点击右上角的下拉菜单，然后点击 `Security Settings`。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SecuritySettings01_aa_002_20230113.png)


### 步骤 3. 在 `Security Settings` 窗口中，设置您的 `Root Password`，然后点击  `Apply`。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SecuritySettings02_aa_002_20230113.png)

### 步骤 4. 返回 `Overview` 页面，点击右上角的 `Connect`。


### 步骤 5. 在 Connect setting 窗口中，点击其中一个按钮添加一些规则，然后设置 `IP Address` 和 `Description(可选)`，然后点击 `Update Filter` 确认更改。
如果 `traffic filter` 已设置，您可以编辑它或跳过此步骤。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectToDedicatedTier02_aa_002_20230111.png)

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectToDedicatedTier03_aa_002_20230111.png)


### 步骤 6. 点击 `Download TiDB cluster CA` 以用于与 TiDB 集群的 TLS 连接。 TiDB cluster CA 默认支持 TLS 1.2 版本。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectToDedicatedTier04_aa_002_20230111.png)


### 步骤 7. 选择一种连接方式，然后使用连接字符串连接到您的集群。请注意，您需要在连接字符串中使用下载的 CA 文件路径作为 `--ssl-ca` 选项的参数。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectToDedicatedTier05_aa_002_20230111.png)


## 模块 4: 模块 4：通过 VPC 对等连接到 `TiDB Cloud Dedicated` 集群

### 步骤 1. 从 VPC 控制台获取 `VPC ID`、`VPC CIDR`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetVPC_aa_001_20230111.png)


### 步骤 2. 在网页控制台左下角，点击您的项目名称（在我们的示例中为`default project` ），然后切换到目标项目，点击 `Project Settings`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ProjectSettings_aa_002_20231107.png)


### 步骤 3. 在项目的 `Project Settings` 页面，点击左侧导航栏中的 `Network Access`，然后点击 `Project CIDR` 选项卡，接着点击 `Add`。


### 步骤 4. 选择 AWS 作为云服务提供商，然后提供您现有 AWS VPC 的信息。 (TiDB Cloud 仅支持同一项目在同一 region 内进行 VPC 对等连接）

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetVPCPeering01_aa_002_20230111.png)


### 步骤 5. 点击  `Done`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetVPCPeering02_aa_002_20230111.png)


### 步骤 6. 在 `AWS VPC Peerings` 部分，验证 `AWS VPC Peerings` 状态为 `system checking`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetVPCPeering03_aa_002_20230111.png)


### 步骤 7. 在您的 AWS 控制台中，打开 `Peering Connections` 页面，您会发现一个 对等连接处于 `Pending acceptance` 状态。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetVPCPeering04_aa_001_20230111.png)


### 步骤 8. 确保请求方所有者是 TiDB Cloud，然后点击 `Accept request`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetVPCPeering05_aa_001_20230111.png)


### 步骤 9. 打开 `Route tables` 页面，添加 `Destination` 和 `Target`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetVPCPeering06_aa_001_20230111.png)


### 步骤 10. 确保您已为 VPC 启用私有 DNS 托管区域支持。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetVPCPeering07_aa_001_20230111.png)


### 步骤 11. 在 TiDB Cloud 控制台的 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)


### 步骤 12. 在 `Overview` 页面，点击右上角的 `Connect` 。


### 步骤 13. 在 Connect setting 窗口中，选择 `VPC Peering`。您可以看到 VPC 对等连接的 `Status` 为 `active`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectByVPC01_aa_002_20230112.png)


### 步骤 14. 使用 SQL 客户端连接到 TiDB。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectByVPC02_aa_002_20230112.png)


## 模块 5：通过私有端点连接到 `TiDB Cloud Dedicated` 集群

### Step 1. 步骤 1. 在网页控制台左下角，点击您的项目名称（在我们的示例中为 `default project` ），然后切换到目标项目，点击 `Project Settings`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ProjectSettings_aa_002_20231107.png)

### 步骤 2. 在项目的 `Project Settings` 页面，点击左侧导航栏中的 `Network Access` ，然后点击 `Private Endpoint` 选项卡，接着点击 `Add`。


### 步骤 3. 在 `Select Cluster` 部分，点击下拉列表并选择一个可用的 TiDB 集群，然后点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint01_aa_002_20230301.png)



### 步骤 4. 在 `Select Region` 部分，服务端点区域已默认选中。请快速检查后点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint02_aa_002_20230301.png)



### 步骤 5. 在 `Interface Endpoint` 部分，TiDB Cloud 开始创建端点服务，这需要 3 到 4 分钟。端点服务创建完成后，从控制台下方区域的命令中记下您的端点服务名称，然后点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint03_aa_002_20230301.png)



### 步骤 6. 在您的 AWS 控制台中，打开 `VPC dashboard`，然后进入 `Endpoints` 页面。


### 步骤 7. 在 `Endpoints` 页面，点击 `Create Endpoint`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint04_aa_001_20230301.png)



### 步骤 8. 在 `Create endpoint` 页面，选择 `Other endpoint services`，在 `Service settings` 部分输入端点服务名称，然后点击 `Verify service`来验证您的端点服务名称。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint05_aa_001_20230301.png)



### 步骤 9. 在 `VPC` 部分，从下拉列表中选择您的 VPC，并在 `Subnets` 部分选择您的 TiDB 集群所在的可用区。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint06_aa_001_20230301.png)



### 步骤 10. 在 `Security groups` 部分，请选择您的 security group ，然后点击 `Create endpoint`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint07_aa_001_20230301.png)



### 步骤 11. 获取您端点的 `VPC endpoint ID` 。然后回到 TiDB Cloud 控制台，在 `Accept Endpoint Connection` 部分中填入您的 `VPC endpoint ID`，然后点击 `Next`。


### 步骤 12. 在您的 AWS 控制台中，右键点击您的端点 ID 并选择 `Modify private DNS name`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint09_aa_001_20230301.png)



### 步骤 13. 在 `Modify private DNS name`页面，选中 `Enable for this endpoint` 复选框，然后点击 `Save changes`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePrivateEndpoint10_aa_001_20230301.png)



### 步骤 14. 在 TiDB Cloud 控制台中，在 `Enable Your Endpoint Private DNS` 部分点击 `Create`。


### 步骤 15. 在 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)



### 步骤 16. 在 `Overview` 页面，点击右上角的 `Connect`。



### 步骤 17. 在 connect setting 窗口中，选择 `Private Endpoint`.。您刚刚创建的私有端点会显示在 `步骤 1：创建私有端点` 下方。


### 步骤 18. 使用 SQL 客户端连接到 TiDB。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectByEndpoint_aa_002_20230112.png)

## 模块 6：通过 SQL Shell 连接到 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 2. 在 `Overview` 页面，点击右上角的 `Connect` 。

### 步骤 3. 在 Connect setting 窗口中，选择 `Web SQL Shell`。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectByWebSQLShell01_aa_002_20230112.png)

### 步骤 4. 点击 `Open SQL Shell`，输入集群密码，然后按回车键。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectByWebSQLShell02_aa_002_20230112.png)

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConnectByWebSQLShell03_aa_001_20230112.png)


## 模块 7：自动备份 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 2. 点击左侧导航栏中的 `Backup`。

### 步骤 3. 在 `Backup` 页面，点击 `Backup Settings`。

### 步骤 4. 配置自动备份，然后点击 `Confirm`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_BackupSettings_aa_002_20230119.png) 

## 模块 8：手动备份 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。

![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 2. 点击左侧导航栏中的 `Backup`。

### 步骤 3. 在 `Backup` 页面，点击 `Manual Backup`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ManualBackup01_aa_002_20230119.png)

### 步骤 4. 输入 `Name`，然后点击 `Confirm`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ManualBackup_aa_002_20230119.png)

## 模块 9：恢复已删除的 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在网页控制台左下角，点击您的项目名称（在我们的示例中为 `default project`），然后切换到目标项目，点击 `Project Settings`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ProjectSettings_aa_002_20231107.png)

### 步骤 2. 在项目的 `Project Settings` 页面，点击左侧导航栏中的 `Recycle Bin`。
   
### 步骤 3. 选择您集群的一个备份，点击 `Backups`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SelectBackup_aa_002_20230119.png)

### 步骤 4. 在下一页面点击 `Restore`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_RestoreBackup_aa_002_20230119.png)

### 步骤 5. 在 `Restore` 窗口中，编辑您的集群配置，然后点击 `Confirm`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConfigureBackup_aa_002_20230119.png)

### 步骤 6. 等待您的 TiDB Cloud 集群恢复。（大约 10 到 30 分钟）


## 模块 10：将数据恢复到新的 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 2. 点击左侧导航栏中的 `Backup` 。


### 步骤 3. 在 `Backup` 页面，点击 `Restore`。

### 步骤 4. 在 `Restore Mode` 部分，选择将任意时间点的数据或选定的备份恢复到新集群。在 `Restore to Region` 部分，选择一个区域。 在 `Restore to New Cluster` 部分，为您的集群输入名称和端口号。然后点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConfigureBackupNewCluster01_aa_002_20230119.png)

### 步骤 5. 在 `Cluster Size` 部分，您可以增加集群的节点大小、节点数量和节点存储。然后点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConfigureBackupNewCluster02_aa_002_20230119.png)

### 步骤 6. 浏览您集群的详细配置，然后点击 `Restore`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConfigureBackupNewCluster03_aa_002_20230119.png)

### 步骤 7. 等待您的 TiDB Cloud 集群恢复。（大约 10 到 30 分钟）


## 模块 11：删除 `TiDB Cloud Dedicated` 集群备份

### 步骤 1. 在 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 2. 点击左侧导航栏中的 `Backup`。

### 步骤 3. 在 `Backup` 页面，点击 `Delete` 以删除备份。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_DeleteClusterBackup_aa_002_20230119.png)

### 步骤 4. 在 `Delete Backup` 窗口中，点击 `I understand the consequence, delete this backup`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConfirmDeleteBackup_aa_002_20230119.png)

## 模块 12：从 `Recycle Bin` 中删除备份

### 步骤 1. 在网页控制台左下角，点击您的项目名称（在我们的示例中为 `default project`），然后切换到目标项目，点击 `Project Settings`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ProjectSettings_aa_002_20231107.png)

### 步骤 2. 在项目的 `Project Settings` 页面，点击左侧导航栏中的 `Recycle Bin`。

### 步骤 3. 选择您集群的一个备份，点击 `Backups`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SelectBackup_aa_002_20230119.png)

### 步骤 4. 点击 `Delete` 以删除备份。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_DeleteClusterBackup_aa_002_20230119.png)

### 步骤 5. 在 `Delete Backup` 窗口中，点击 `I understand the consequence, delete this backup`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ConfirmDeleteBackup_aa_002_20230119.png)


## 模块 13：扩容 `TiDB Cloud Dedicated` 集群

### 步骤 1. 点击右上角的下拉菜单，然后选择 `Modify`。 
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoModify_aa_002_20230119.png)

### 步骤 2. 在 `Modify Cluster` 窗口中，您可以增加 TiDB、TiKV 和 TiFlash 的节点数量。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ScaleOutCloudCluster01_aa_002_20230119.png)

### 步骤 3. 在右侧窗格中查看集群规模，然后点击 `Confirm`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ScaleOutCloudCluster02_aa_002_20230119.png)

### 步骤 4. 等待您的 TiDB Cloud 集群扩容完成。

## 模块 14：缩容 `TiDB Cloud Dedicated` 集群

### 步骤 1. 点击右上角的下拉菜单，然后选择 `Modify`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoModify_aa_002_20230119.png)

### 步骤 2. 在 `Modify Cluster` 窗口中，您可以减少 TiDB、TiKV 和 TiFlash 的节点数量。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ScaleOutCloudCluster01_aa_002_20230119.png)

### 步骤 3. 在右侧窗格中查看集群规模，然后点击 `Confirm`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ScaleInCloudCluster02_aa_004_20230119.png)

### 步骤 4. 等待您的 TiDB Cloud 集群缩容完成。

## 模块 15：纵向扩展 `TiDB Cloud Dedicated` 集群

### 步骤 1. 点击右上角的下拉菜单，然后选择 `Modify`。  
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoModify_aa_002_20230119.png)

### 步骤 2. 在 `Modify Cluster` 窗口中，您可以增加 TiKV 和 TiFlash 的 节点存储。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ScaleUpCloudCluster01_aa_002_20230119.png)

### 步骤 3. 在右侧窗格中查看集群规模，然后点击 `Confirm`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ScaleUpCloudCluster02_aa_002_20230119.png)

### 步骤 4. 等待您的 TiDB Cloud 集群完成纵向扩展。

## 模块 16：更改 `TiDB Cloud Dedicated` 集群的节点大小

### 步骤 1. 点击右上角的下拉菜单，然后选择 `Modify`。 
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoModify_aa_002_20230119.png)

### 步骤 2. 在 `Modify Cluster` 窗口中， 您可以增加或减少 TiDB、TiKV 或 TiFlash 的大小（包括 vCPU 和内存）。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ChangeNodeCloudCluster01_aa_002_20230613.png)

### 步骤 3. 在下一页，查看您的修改内容，然后点击 `Confirm`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ChangeNodeCloudCluster02_aa_002_20230613.png)

### 步骤 4. 等待您的 TiDB Cloud 集群完成节点大小更改。

## 模块 17：准备示例数据

### 步骤 1. 将示例数据仓库克隆到本地。
```
$ git clone https://github.com/pingcap/tidb-course-201-lab
```

### 步骤 2. 前往工作目录。
```
$ cd tidb-course-201-lab/scripts/misc
```

### 步骤 3. 验证 misc 中的所有数据 (`universe-csv/`, `universe-dumpling/`, `universe-parquet/`)。
```
universe-csv
universe-dumpling
universe-parquet
```

+ 示例 CSV 数据文件：
```
universe-schema-create.sql
universe.moons-schema.sql
universe.moons.csv
universe.planets-schema.sql
universe.planets.0000001.csv
universe.planets.csv
universe.planet_categories-schema.sql
universe.planet_categories.csv
universe.stars-schema.sql
universe.stars.csv
```

+ 示例 TiDB Dumpling 数据文件：
```
metadata
universe-schema-create.sql
universe.moons-schema.sql
universe.moons.0000000010000.sql
universe.planets-schema.sql
universe.planets.0000000010000.sql
universe.planet_categories-schema.sql
universe.planet_categories.0000000010000.sql
universe.stars-schema.sql
universe.stars.0000000010000.sql
```

+ 示例 Parquet 数据文件：
```
universe-schema-create.sql
universe.moons-schema.sql
universe.moons.parquet
universe.planets-schema.sql
universe.planets.0000001.parquet
universe.planets.parquet
universe.planet_categories-schema.sql
universe.planet_categories.parquet
universe.stars-schema.sql
universe.stars.parquet
```

### 步骤 4. [打开 Amazon S3 控制台](https://console.aws.amazon.com/s3/)，在 `Buckets` 部分，您可以选择或创建一个存储桶来存储示例数据。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ch09-1-05.png)

### 步骤 5. 点击 `Upload` ，将所有数据目录 (`universe-csv/`, `universe-dumpling/`, `universe-parquet/`) 上传到存储桶。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ch09-1-06.png)
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ch09-1-07.png)



## 模块 18：将本地 CSV 数据导入 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在 `Clusters` 页面，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 2. 在 `Overview`页面，点击左侧导航栏中的 `Import`。


### 步骤 3. 在 `Import` 页面，您可以直接将 `universe.moons.csv` 文件拖放到上传区域，或者点击上传区域选择并上传 `universe.moons.csv` 文件。请注意，每个任务只能上传一个小于 50 MiB 的 CSV 文件。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportLocalCSVFile01_aa_002_20230223.png)

### 步骤 4. 在 Target 区域，选择目标数据库和目标表，或者直接输入名称创建新的数据库或新表，然后点击 `Preview`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportLocalCSVFile02_aa_002_20230223.png)

### 步骤 5. 在下一页，检查表格并根据需要编辑 CSV 配置，然后点击 `Start Import`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportLocalCSVFile03_aa_002_20230223.png)

### 步骤 6. 等待数据导入完成。导入任务完成后，您可以点击 `Explore your data by Chat2Query` 来查询导入的数据。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportLocalCSVFile04_aa_002_20230223.png)

## 模块 19：从 Amazon S3 存储桶将 CSV 数据导入 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在 `Clusters`页面，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 2. 在 `Overview`页面，点击左侧导航栏中的 `Import`。

### 步骤 3. 在 `Import` 页面，点击 `Import Data`。

### 步骤 4. 选择 `AWS Role ARN`，然后点击 `Guide for getting the required Role-ARN` ，以获取您集群的 `TiDB Cloud account ID` 和 `TiDB Cloud External ID`。 
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetTiDBCloudID_aa_002_20231108.png)


### 步骤 5. 打开 [Amazon S3 控制台](https://console.aws.amazon.com/s3/)，然后点击 `Buckets`。
  
### 步骤 6. 点击 `Copy ARN` 获取您的 S3 存储桶 ARN。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetBucketARN_aa_002_20231108.png)

### 步骤 7. 打开 [IAM 控制台](https://console.aws.amazon.com/iam/)，然后点击 `Policies`。

### 步骤 8. 点击 `Create Policy`。

### 步骤 9. 在 `Create policy` 页面，您可以选择点击 `Visual editor` 选项卡或点击 `JSON` 选项卡。 
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePolicy01_aa_002_20231108.png)

  + 如果您选择 `JSON` 选项卡来创建访问策略，可以参考以下模板。
   ![80%](https://lab-static.pingcap.com/quick-demo/demo_501_PolicyJSON_aa_002_20231108.png)

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:GetObjectVersion"
               ],
               "Resource": "<Your S3 bucket ARN>/universe-csv/*"
           },
           {
               "Sid": "VisualEditor1",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": "<Your S3 bucket ARN>"
           }
       ]
   }
   ```
  
    
### 步骤 10. 在下一页设置策略 `Name` 和 `Description`，然后点击 `Create policy`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePolicy02_aa_002_20231108.png)   
 

### 步骤 11. 打开 [IAM 控制台](https://console.aws.amazon.com/iam/)，然后点击 `Roles`。

### 步骤 12. 点击 `Create role`。
  
### 步骤 13. 在 `Trusted entity type` 部分，选择 `AWS account`。接下来，在 `An AWS account` 部分，选择 `Another AWS account`，然后在 `Account ID` 中输入 `TiDB Cloud account ID`。 在 `Options` 部分，点击 `Require external ID (Best practice when a third party will assume this role)` ，然后在 `External ID` 中输入 `TiDB Cloud External ID`。 点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetSelectTrustedEntity_aa_002_20231108.png) 

### 步骤 14. 为该角色选择策略，然后点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ChoosePolicy_aa_002_20231108.png)

### 步骤 15. 在 `Role details` 部分，设置 `Role name` 和 `Description`，然后点击 `Create role`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetRoleDetails_aa_002_20231108.png)

### 步骤 16. 在 `Roles` 页面，点击您刚刚创建的角色名称。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetRolesARN01_aa_002_20231108.png)

### 步骤 17. 记录 `ARN` 的值，稍后会用到。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetRolesARN02_aa_002_20231108.png)


### 步骤 18. 返回 [TiDB Cloud 控制台](https://tidbcloud.com/console/clusters)，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 19. 点击左侧导航栏中的 `Import`。

### 步骤 20. 在 `Import` 页面，点击 `Import Data`。

### 步骤 21. 在 `Source`部分，在 `Data format` 中选择 `CSV`，并填入示例 CSV 数据的 `Bucket URI`。在 `Bucket Access` 部分，选择 `AWS Role ARN`，然后输入您刚获取的 `Role ARN` 。点击 `Start Import`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportCSVData_aa_003_20230202.png)

### 步骤 22. 等待数据导入完成。导入任务完成后，您可以点击 `Explore your data by Chat2Query` 来查询导入的数据。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportCSVFileChat2Query_aa_002_20231108.png)



## 模块 20：将 SQL 文件从 Amazon S3 存储桶导入 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在 `Clusters`页面，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 2. 在 `Overview`页面，点击左侧导航栏中的 `Import`。

### 步骤 3. 在 `Import` 页面，点击 `Import Data`。

### 步骤 4. 选择 `AWS Role ARN`，然后点击 `Guide for getting the required Role-ARN` ，以获取您集群的 `TiDB Cloud account ID` 和 `TiDB Cloud External ID`。 
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetTiDBCloudID_aa_002_20231108.png)

### 步骤 5. 打开 [Amazon S3 控制台](https://console.aws.amazon.com/s3/)，然后点击 `Buckets`。
  
### 步骤 6. 点击 `Copy ARN` 获取您的 S3 存储桶 ARN。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetBucketARN_aa_002_20231108.png)

### 步骤 7. 打开 [IAM 控制台](https://console.aws.amazon.com/iam/)，然后点击 `Policies`。

### 步骤 8. 点击 `Create Policy`。

### 步骤 9. 在 `Create policy` 页面，您可以选择点击 `Visual editor` 选项卡或点击 `JSON` 选项卡。 
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePolicy01_aa_002_20231108.png)

  + 如果您选择 `JSON` 选项卡来创建访问策略，可以参考以下模板。
   ![80%](https://lab-static.pingcap.com/quick-demo/demo_501_PolicyJSON_aa_002_20231108.png)

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "<Your S3 bucket ARN>/universe-dumpling/*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "<Your S3 bucket ARN>"
        }
    ]
}
```
  
### 步骤 10. 在下一页设置策略 `Name` 和 `Description`，然后点击 `Create policy`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePolicy02_aa_002_20231108.png) 
    
### 步骤 11. 打开 [IAM 控制台](https://console.aws.amazon.com/iam/)，然后点击 `Roles`。

### 步骤 12. 点击 `Create role`。
  
### 步骤 13. 在 `Trusted entity type` 部分，选择 `AWS account`。接下来，在 `An AWS account` 部分，选择 `Another AWS account`，然后在 `Account ID` 中输入 `TiDB Cloud account ID`。 在 `Options` 部分，点击 `Require external ID (Best practice when a third party will assume this role)` ，然后在 `External ID` 中输入 `TiDB Cloud External ID`。 点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetSelectTrustedEntity_aa_002_20231108.png) 

### 步骤 14. 为该角色选择策略，然后点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ChoosePolicy_aa_002_20231108.png)

### 步骤 15. 在 `Role details` 部分，设置 `Role name` 和 `Description`，然后点击 `Create role`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetRoleDetails_aa_002_20231108.png)

### 步骤 16. 在 `Roles` 页面，点击您刚刚创建的角色名称。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetRolesARN01_aa_002_20231108.png)

### 步骤 17. 记录 `ARN` 的值，稍后会用到。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetRolesARN02_aa_002_20231108.png)


### 步骤 18. 返回 [TiDB Cloud 控制台](https://tidbcloud.com/console/clusters)，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 19. 点击左侧导航栏中的 `Import`。

### 步骤 20. 在 `Import` 页面，点击 `Import Data`。

### 步骤 21. 在 `Source`部分，在 `Data format` 中选择 `SQL File`，并填入示例 CSV 数据的 `Bucket URI`。在 `Bucket Access` 部分，选择 `AWS Role ARN`，然后输入您刚获取的 `Role ARN` 。点击 `Start Import`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportSQLData_aa_003_20230202.png)

### 步骤 22. 等待数据导入完成。导入任务完成后，您可以点击 `Explore your data by Chat2Query` 来查询导入的数据。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportSQLFileChat2Query_aa_002_20231108.png)


## 模块 21：将 Parquet 数据从 Amazon S3 存储桶导入 `TiDB Cloud Dedicated` 集群

### 步骤 1. 在 `Clusters`页面，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)


### 步骤 2. 在 `Overview`页面，点击左侧导航栏中的 `Import`。

### 步骤 3. 在 `Import` 页面，点击 `Import Data`。

### 步骤 4. 选择 `AWS Role ARN`，然后点击 `Guide for getting the required Role-ARN` ，以获取您集群的 `TiDB Cloud account ID` 和 `TiDB Cloud External ID`。 
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetTiDBCloudID_aa_002_20231108.png)

### 步骤 5. 打开 [Amazon S3 控制台](https://console.aws.amazon.com/s3/)，然后点击 `Buckets`。
  
### 步骤 6. 点击 `Copy ARN` 获取您的 S3 存储桶 ARN。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetBucketARN_aa_002_20231108.png)

### 步骤 7. 打开 [IAM 控制台](https://console.aws.amazon.com/iam/)，然后点击 `Policies`。

### 步骤 8. 点击 `Create Policy`。

### 步骤 9. 在 `Create policy` 页面，您可以选择点击 `Visual editor` 选项卡或点击 `JSON` 选项卡。 
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePolicy01_aa_002_20231108.png)

+ 如果您选择 `JSON` 选项卡来创建访问策略，可以参考以下模板。
   ![80%](https://lab-static.pingcap.com/quick-demo/demo_501_PolicyJSON_aa_002_20231108.png)


```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "<Your S3 bucket ARN>/universe-parquet/*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "<Your S3 bucket ARN>"
        }
    ]
}
```
  
### 步骤 10. 在下一页设置策略 `Name` 和 `Description`，然后点击 `Create policy`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_CreatePolicy02_aa_002_20231108.png) 
    
### 步骤 11. 打开 [IAM 控制台](https://console.aws.amazon.com/iam/)，然后点击 `Roles`。


### 步骤 12. 点击 `Create role`。
  
### 步骤 13. 在 `Trusted entity type` 部分，选择 `AWS account`。接下来，在 `An AWS account` 部分，选择 `Another AWS account`，然后在 `Account ID` 中输入 `TiDB Cloud account ID`。 在 `Options` 部分，点击 `Require external ID (Best practice when a third party will assume this role)` ，然后在 `External ID` 中输入 `TiDB Cloud External ID`。 点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetSelectTrustedEntity_aa_002_20231108.png) 

### 步骤 14. 为该角色选择策略，然后点击 `Next`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ChoosePolicy_aa_002_20231108.png)


### 步骤 15. 在 `Role details` 部分，设置 `Role name` 和 `Description`，然后点击 `Create role`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_SetRoleDetails_aa_002_20231108.png)

### 步骤 16. 在 `Roles` 页面，点击您刚刚创建的角色名称。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetRolesARN01_aa_002_20231108.png)

### 步骤 17. 记录 `ARN` 的值，稍后会用到。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GetRolesARN02_aa_002_20231108.png)

### 步骤 18. 返回 [TiDB Cloud 控制台](https://tidbcloud.com/console/clusters)，点击集群名称进入集群的 `Overview` 页面。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_GoDedicatedTierOverview_aa_002_20230111.png)

### 步骤 19. 点击左侧导航栏中的 `Import`。

### 步骤 20. 在 `Import` 页面，点击 `Import Data`。

### 步骤 21. 在 `Source`部分，在 `Data format` 中选择 `Parquet`，并填入示例 CSV 数据的 `Bucket URI`。在 `Bucket Access` 部分，选择 `AWS Role ARN`，然后输入您刚获取的 `Role ARN` 。点击 `Start Import`。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportParquetData_aa_003_20230202.png)

### 步骤 22. 等待数据导入完成。导入任务完成后，您可以点击 `Explore your data by Chat2Query` 来查询导入的数据。
![80%](https://lab-static.pingcap.com/quick-demo/demo_501_ImportParquetFileChat2Query_aa_002_20230223.png)



## 结论

TiDB Cloud Dedicated 集群是 TiDB 的一种完全托管的部署选项，专为生产环境而设计。它提供隔离的资源，以提升性能、安全性和可控性。主要功能包括：

  + 灵活的连接类型：支持公共连接、私有端点连接和 VPC 对等连接，建议通过 4000 端口使用 TLS 进行安全连接。安全连接需要配置 CA 证书和 IP 访问列表。

  + 高级功能：包括 Changefeeds、数据迁移、时间点恢复（PITR）、跨区域高可用性、横向扩展以及混合事务和分析处理（HTAP）能力。

  + 云托管：托管在 AWS 和谷歌云等云服务提供商上，支持从 Amazon S3 和谷歌云存储（GCS）进行外部存储访问，以实现数据导入和迁移。

  + 定制与控制：与 TiDB Cloud Serverless 相比，它对配置提供了更多的控制和定制，适合需要 Serverless 所不具备功能的用户。

  + 可扩展性：对于超过 500 GiB 的数据导入，建议 TiDB 节点至少有 16 个核心并启用全局排序，每个任务的导入限制为 40 TiB。

  + 管理：通过 TiDB Cloud 控制台进行管理和配置。

如需更详细的信息，您可以参考官方文档 [What is TiDB Cloud](https://docs.pingcap.com/tidbcloud/tidb-cloud-intro#what-is-tidb-cloud).