使用控制台在 Oracle NoSQL Database Cloud Service 中创建表
创建单例表
您可以从 NoSQL 控制台创建新的 Oracle NoSQL Database Cloud Service 表。
- 简单输入模式:可以使用此模式以声明方式创建 NoSQL Database Cloud Service 表,即无需编写 DDL 语句。
- 高级 DDL 输入模式:可以使用此模式通过 DDL 语句创建 NoSQL Database Cloud Service 表。
创建单例表:高级 DDL 输入模式
了解如何使用高级 DDL 输入表创建模式从 NoSQL 控制台创建表。
- 从 Infrastructure Console 访问 NoSQL 控制台。请参阅从基础结构控制台访问服务。
- 单击创建表。
- 在“创建表”窗口中,为表创建模式选择高级 DDL 输入。
- 在预留容量下,您具有以下选项。
-
始终免费配置:
启用切换按钮以创建“始终免费”NoSQL 表。禁用切换按钮将创建常规 NoSQL 表。您最多可以在租户中创建三个“始终免费”NoSQL 表。如果租户中有三个“始终免费”NoSQL 表,则禁用用于创建“始终免费”SQL 表的切换按钮。
如果启用切换按钮以创建“始终免费”NoSQL 表,则会为“读取容量”、“写入容量”和“磁盘存储”字段分配默认值。容量模式变为 Provisioned Capacity 。这些值不可更改。
如果要创建常规表,请禁用切换按钮。您可以为表输入适当的容量值。- 读取容量 (ReadUnits):输入读取单位数。有关读取单位的信息,请参见 Estimating Capacity 。
- 写入容量 (WriteUnits):输入写入单位数。有关写入单位的信息,请参见 Estimating Capacity 。
- 磁盘存储 (GB):指定表要使用的磁盘空间 (GB)。要了解存储容量,请参见 Estimating Capacity 。
-
容量模式
您可以将“容量”模式的选项指定为“预配容量”或“按需容量”。“预配容量”和“按需容量”模式是互斥的选项。如果为表启用“按需容量”,则不需要指定表的读/写容量。按实际读取和写入单位使用量收费,而非预配使用量收费。
如果满足以下任一条件,为表启用按需扩容是一个不错的选择:- 创建具有未知工作量的新表。
- 您有不可预测的应用程序流量。
- 您更喜欢仅为使用的内容付费。
对表启用按需扩容的限制:- On Demand Capacity 将表的容量限制为 5,000 次写入和 10,000 次读取。
- 每个租户的按需容量 (On Demand Capacity) 表的数量限制为 3 个。
- 对于按需容量表单位,您支付的单位数量比预配的表单位多。
选择按需容量将禁用始终免费配置。“读取容量”和“写入容量”输入框变为只读,并显示文本按需容量。On Demand Capacity 表将在其读取和写入容量列中显示 On Demand Capacity 。如果“容量”模式为按需容量,则禁用“始终免费”控制。
-
- 在 DDL 输入部分中,输入查询的创建表 DDL 语句。您可能会收到一条错误,指出您的语句不完整或有故障。请参阅在 OCI 控制台中调试 SQL 语句错误,了解 OCI 控制台中可能存在的错误以及如何修复这些错误。有关 create table 语句的示例,请参阅开发人员指南。
- (可选)要指定高级选项,请单击显示高级选项并输入高级详细信息:
- 标记名称空间:从选择列表中选择标记名称空间。标记名称空间类似于标记键的容器。它不区分大小写,并且在租户中必须唯一。
- 标记键:输入用于引用标记的名称。标记键不区分大小写,在名称空间中必须唯一。
- 值:输入用于指定标记的值。
- + 其他标记:单击此项可添加更多标记。
- 单击创建表。
创建子表
使用 Oracle NoSQL Database,可以在分层结构(作为父子表)中创建表。
表层次
A
/ \
A.B A.G
/
A.B.C
/
A.B.C.D
最顶部的父表是 A。子表 B 获得组合名称 A.B. 子表 C 的下一级别获得组合名称 A.B.C 等。
子表的属性:
- 创建子表时,无法指定读取容量、写入容量或磁盘存储限制。子表共享父表中的相应值。
- 子表计入租户的表总数。
- 父表及其子表始终位于同一区间中。
- 在父级别收集和汇总度量信息。在子表级别看不到任何度量。
- 子表有自己的标记,独立于父表。
- 子表还会继承父表的容量定价模型。例如,如果为父表配置了 On Demand Capacity,则也可以为子表配置相同的容量定价模型。
父子表中的事务处理
- 将一个表声明为另一个表的子项。
- 使用
writeMutliple
API 为父表和子表添加操作。
- 查找要包括在事务处理中的所有对象的分片键值。
- 确保所有对象的分片键相同。
- 使用
writeMutliple
API 将每个对象添加到集合。
使用子表可以轻松跨多个对象实现 ACID 事务。
子表中的授权:
- 您对子表具有特定权限 (READ/INSERT/DELETE)。
- 对于层次结构中特定子表的父表,您具有相同的权限或至少读取权限。
有关更多详细信息,请参见 IAM policies for authorization 。
例如,如果要将数据插入不归您所有的子表 myTable.child1,则必须对子表具有 INSERT 权限,对 myTable 具有 READ 和/或 INSERT 权限。向子表授予权限与向父表授予权限无关。这意味着您可以向子表授予特定权限,而不必为其父表授予相同的权限。任何父/子联接查询都需要对查询中使用的所有表具有相关权限。有关更多详细信息,请参阅将左外部联接与父子表一起使用。
创建子表
- 单击父表可查看其详细信息。此时将显示父表已经存在的子表列表。
- 在左侧导航菜单的“资源”下,单击子表。
-
- 此时将显示父表的子表列表。要创建子表,请单击创建子表。
- 此时将显示父表的子表列表。要创建子表,请单击创建子表。
- 可以选择简单输入方法或高级 DDL 输入方法来创建子表。
- 指定子表的名称。这会自动以父表的名称作为前缀,后跟一个点。指定列和主键列的列表。
- 创建子表时不会显示设置为分片键复选框,因为子表从其顶层父表继承分片键。
注意:
未指定 "Read Capacity"、"Write Capacity" 和 "Disk Storage" 字段,因为子表从顶层表继承了这些限制。为顶层表设置的限制将自动应用于子表。