使用控制台在 Oracle NoSQL Database Cloud Service 中创建表
了解如何从控制台创建和管理 Oracle NoSQL Database Cloud Service 表和索引。
本文包含以下主题:
创建区间的
当您注册 Oracle Cloud Infrastructure 时,Oracle 会使用根区间创建您的租户,该区间包含您的所有云资源。然后,您可以在租户(根区间)中创建其他区间以及相应的策略来控制对每个区间中资源的访问。在创建 Oracle NoSQL Database Cloud Service 表之前,Oracle 建议您设置您希望表所属的区间。
您可以在 Oracle Cloud Infrastructure Identity and Access Management (IAM) 中创建区间。请参阅设置租户和管理区间
创建单例表
您可以从 NoSQL 控制台创建新的 Oracle NoSQL Database Cloud Service 表。
NoSQL 控制台允许您以两种模式创建 Oracle NoSQL Database Cloud Service 表:
-
简单输入模式:您可以使用此模式以声明方式创建 NoSQL Database Cloud Service 表,即不写入 DDL 语句。
-
高级 DDL 输入模式:您可以使用此模式使用 DDL 语句创建 NoSQL Database Cloud Service 表。
创建单例表:简单输入模式
了解如何使用简单输入表创建模式从 NoSQL 控制台创建表。
创建表:
-
从基础结构控制台访问 NoSQL 控制台。请参阅从基础结构控制台访问服务。
-
单击创建表。
-
在“创建表”对话框中,为表创建模式选择简单输入。
-
在预留容量下,您可以选择启用始终免费配置或配置容量模式。“始终免费”配置当前仅适用于 Phoenix 区域。
-
Always Free Configuration(始终免费配置)(仅在 Phoenix 区域中可用):
启用切换按钮以创建始终免费的 NoSQL 表。禁用切换按钮将创建常规 NoSQL 表。在租户中至多可以创建三个 Always Free NoSQL 表。如果租户中有三个“始终免费”NoSQL 表,则禁用用于创建“始终免费”SQL 表的切换按钮。
如果启用切换按钮以创建始终免费的 NoSQL 表,则会为“读取容量”、“写入容量”和“磁盘存储”字段指定默认值。容量模式变为 Provisioned Capacity 。无法更改这些值。
要了解有关使用“始终免费配置”选项创建的表的详细信息、功能和限制的更多信息,请参见始终免费服务。

如果要创建常规表,则禁用切换按钮。您可以为表输入适当的容量值。
-
读取容量 (ReadUnits):输入读取单位数。有关读取单位的信息,请参见 Estimating Capacity 。
-
写入容量 (WriteUnits):输入写入单位数。有关写入单位的信息,请参见 Estimating Capacity 。
-
磁盘存储 (GB):指定要由表使用的磁盘空间 (GB)。要了解存储容量,请参阅估算容量。

-
-
容量模式
您可以将“容量”模式的选项指定为“预配的容量”或“按需容量”。“预配容量”和“按需容量”模式是互斥的选项。如果为表启用了 On Demand Capacity,则无需指定表的读/写容量。您需要支付实际读取和写入单位使用量,而不是预配使用量。
如果满足以下任一条件,则为表启用 On Demand Capacity 是一个不错的选择:
-
创建具有未知工作量的新表。
-
您的应用程序流量不可预测。
-
你更喜欢只为你所使用的东西付费。
为表启用 On Demand Capacity 的限制:
-
按需容量将表的容量限制为 5,000 次写入和 10,000 次读取。
-
每个租户具有 On Demand 容量的表数限制为 3。
-
您为 On Demand Capacity 表单元支付的单位数量多于预配表单元。

选择 On Demand Capacity 将禁用 Always Free Configuration 。“读取容量”和“写入容量”输入框变为只读,并显示文本 On Demand Capacity 。On Demand Capacity 表在其读写容量列中显示 On Demand Capacity 。如果“容量”模式为按需容量,则“始终免费”控件处于禁用状态。指定磁盘存储 (GB) 值。

-
-
-
在名称字段中,输入在租户中唯一的表名。
表名必须符合 Oracle NoSQL Database Cloud Service 命名约定。请参阅 Oracle NoSQL Database Cloud Service 限制。
-
在主键列部分中,输入主键详细信息:
-
列名:输入表中主键的列名。要了解列命名要求,请参阅 Oracle NoSQL Database Cloud Service 限制。
-
类型:为主键列选择数据类型。
-
精度:这仅适用于
TIMESTAMP类型的列。时间戳值的精度以小数秒为单位,范围为 0 到 9。例如,精度为 0 表示不存储小数秒,3 表示时间戳存储毫秒,9 表示精度为纳秒。0 表示最小精度,9 表示最大值。 -
设置为分块键:单击此选项可以将此主键列设置为分块键。分片密钥用于在 Oracle NoSQL Database Cloud Service 集群中分发数据以提高效率,以及在本地放置共享分片密钥的记录,以便于参考和访问。共享分片密钥的记录存储在相同的物理位置,可以原子有效地访问。
-
+ 另一个主键列:单击此按钮可在创建组合(多列)主键时添加更多列。
-
创建组合主键时,使用向上和向下箭头更改列的序列。

-
-
在列部分中,输入非主要列详细信息:

-
列名:输入列名。确保符合 Oracle NoSQL Database Cloud Service 限制中所述的列命名要求。
-
类型:为列选择数据类型。
-
精度:这仅适用于
TIMESTAMP类型的列。时间戳值的精度以小数秒为单位,范围为 0 到 9。例如,精度为 0 表示不存储小数秒,3 表示时间戳存储毫秒,9 表示精度为纳秒。0 表示最小精度,9 表示最大值。 -
大小:这仅适用于
BINARY类型的列。以字节为单位指定使二进制文件成为固定二进制文件的大小。 -
默认值:(可选)为列提供默认值。
注:不能为二进制和 JSON 数据类型列指定默认值。
-
值不为 NULL:单击此选项可指定列必须始终具有值。
-
+ 其他列:单击此按钮可添加更多列。
-
单击“删除”图标可删除列。
-
-
(可选)在表生存时间(天)字段中为表中的行指定到期持续时间(天数)。天数过后,行将自动失效,不再可用。默认值为零,表示没有到期时间。
注:将表时间更新为实时 (TTL) 不会更改表中任何现有数据的 TTL 值。新 TTL 值将仅应用于修改此值后添加到表的那些行,以及未为其提供覆盖行特定值的行。
-
(可选)要指定高级选项,请选择显示高级选项并输入高级详细信息:
在标记部分中,输入:
-
标记名称空间:从选择列表中选择标记名称空间。标记名称空间类似于标记键的容器。它不区分大小写,在租户中必须唯一。
-
标记键:输入用于引用标记的名称。标记键不区分大小写,且在名称空间中必须唯一。
-
标记值:输入用于指定标记的值。
-
添加标记:单击以添加更多标记。

-
-
选择创建表。
该表在 NoSQL 控制台中创建和列出。
要查看当前页面的帮助,请单击页面顶部的帮助链接。
创建单例表:高级 DDL 输入模式
了解如何使用高级 DDL 输入表创建模式从 NoSQL 控制台创建表。
创建表:
-
从基础结构控制台访问 NoSQL 控制台。请参阅从基础结构控制台访问服务。
-
选择创建表。
-
在“创建表”窗口中,为表创建模式选择高级 DDL 输入。
-
在预留容量下,您可以选择启用始终免费配置或配置容量模式。
-
Always Free Configuration(始终免费配置)(仅在 Phoenix 区域中可用):
启用切换按钮以创建始终免费的 NoSQL 表。禁用切换按钮将创建常规 NoSQL 表。在租户中至多可以创建三个 Always Free NoSQL 表。如果租户中有三个“始终免费”NoSQL 表,则禁用用于创建“始终免费”SQL 表的切换按钮。
如果启用切换按钮以创建始终免费的 NoSQL 表,则会为“读取容量”、“写入容量”和“磁盘存储”字段指定默认值。容量模式变为 Provisioned Capacity 。无法更改这些值。
要了解有关使用“始终免费配置”选项创建的表的详细信息、功能和限制的更多信息,请参见始终免费服务。

如果要创建常规表,则禁用切换按钮。您可以为表输入适当的容量值。
-
读取容量 (ReadUnits):输入读取单位数。有关读取单位的信息,请参见 Estimating Capacity 。
-
写入容量 (WriteUnits):输入写入单位数。有关写入单位的信息,请参见 Estimating Capacity 。
-
磁盘存储 (GB):指定要由表使用的磁盘空间 (GB)。要了解存储容量,请参阅估算容量。

-
-
容量模式
您可以将“容量”模式的选项指定为“预配的容量”或“按需容量”。“预配容量”和“按需容量”模式是互斥的选项。如果为表启用了 On Demand Capacity,则无需指定表的读/写容量。您需要支付实际读取和写入单位使用量,而不是预配使用量。
如果满足以下任一条件,则为表启用 On Demand Capacity 是一个不错的选择:
-
创建具有未知工作量的新表。
-
您的应用程序流量不可预测。
-
你更喜欢只为你所使用的东西付费。
为表启用 On Demand Capacity 的限制:
-
按需容量将表的容量限制为 5,000 次写入和 10,000 次读取。
-
每个租户具有 On Demand 容量的表数限制为 3。
-
您为 On Demand Capacity 表单元支付的单位数量多于预配表单元。

插图 crttbladv_paid_prov.png 的说明
选择 On Demand Capacity 将禁用 Always Free Configuration 。“读取容量”和“写入容量”输入框变为只读,并显示文本 On Demand Capacity 。On Demand Capacity 表在其读写容量列中显示 On Demand Capacity 。如果“容量”模式为按需容量,则“始终免费”控件处于禁用状态。指定磁盘存储 (GB) 值。

-
-
-
在 DDL 输入部分中,为 Query 输入创建表 DDL 语句。您可能会收到一个错误,指出您的语句不完整或有故障。请参阅在 OCI 控制台中调试 SQL 语句错误,了解 OCI 控制台中的可能错误以及如何修复它们。有关 create table 语句的示例,请参阅开发人员指南。
-
(可选)要指定高级选项,请选择显示高级选项并输入高级详细信息:
- 标记名称空间:从选择列表中选择标记名称空间。标记名称空间类似于标记键的容器。它不区分大小写,在租户中必须唯一。
- 标记键:输入用于引用标记的名称。标记键不区分大小写,且在名称空间中必须唯一。
- 标记值:输入用于指定标记的值。
-
添加标记:单击以添加更多标记。

-
单击创建表。
该表在 NoSQL 控制台中创建和列出。
要查看当前页面的帮助,请单击页面顶部的帮助链接。
创建子表
使用 Oracle NoSQL Database,可以按分层结构(作为父子表)创建表。
表层次
可以使用 create table 语句将一个表创建为另一个表的子表,然后该表将成为新表的父表。这是通过使用子表的组合名称 (name_path) 来完成的。组合名称由数字 N(N > 1) 的标识符组成,这些标识符由点分隔。最后一个标识符是子表的本地名称,前 N-1 标识符是父表的名称。
A
/ \
A.B A.G
/
A.B.C
/
A.B.C.D
最顶层的父表是 A。子表 B 使用组合名称 A.B。子表 C 的下一级别将获得组合名称 A.B.C 等等。
子表的属性:
-
创建子表时,无法指定读取容量、写入容量或磁盘存储限制。子表共享父表中的相应值。
-
子表计入租户的表总数。
-
父表及其子表始终位于同一区间中。
-
度量信息在父级别收集和聚合。在子表级别没有可见的度量。
-
子表有自己的标签,与父表无关。
-
子表还继承父表的容量定价模型。例如,如果父表配置有 On Demand Capacity,则子表也可以配置有相同的容量定价模型。
父子表中的事务处理
父表和子表具有相同的分片键。使用子表,可以使用以下两个简单步骤跨多个对象实现 ACID 事务:
-
将一个表声明为另一个表的子表。
-
使用
writeMutlipleAPI 为父表和子表添加操作。
如果子表不存在,跨多个对象实现 ACID 事务是一个繁琐的过程。不使用子表,将执行以下操作:
-
查找要包含在事务处理中的所有对象的分片关键字值。
-
确保所有对象的分片键均相等。
-
使用
writeMutlipleAPI 将每个对象添加到集合。
使用子表可以轻松实现多个对象的 ACID 事务。
子表中的授权:
如果您不拥有某个表,并且想要读取、删除该表或将其插入该表中,则必须满足两个条件:
-
您对子表具有特定权限 (READ/INSERT/DELETE)。
-
您对层次结构中特定子表的父表具有相同的权限,或者至少具有读取权限。
有关详细信息,请参阅 IAM 策略以获得授权。
例如,如果要将数据插入不归您所有的子表 myTable.child1,则必须对子表具有 INSERT 权限,对 myTable 具有 READ 和/或 INSERT 权限。向子表授予权限与向父表授予权限无关。这意味着您可以为子表授予特定权限,而不必为其父表授予相同的权限。任何父/子联接查询都需要对查询中使用的所有表具有相关权限。有关更多详细信息,请参阅将左外部联接与父子表结合使用。
创建子表
-
单击父表以查看其详细信息。此时将显示已存在的父表的列表。
-
在左侧导航菜单的“资源”下,选择子表。

-
此时将显示父表的子表列表。要创建子表,请选择创建子表。

-
可以选择 Simple input(简单输入)方法或 Advanced DDL input(高级 DDL 输入)方法创建子表。
-
指定子表的名称。这会自动添加前缀,后跟一个点。指定列和主键列的列表。


-
创建子表时不会显示设置为分片键复选框,因为子表从其顶层父表继承其分片键。
注:未指定“读取容量”、“写入容量”和“磁盘存储”字段,因为子表从顶层表中继承这些限制。为顶层表设置的限制将自动应用于子表。
查看子表的详细信息
创建子表后,您可以查看该表的详细信息。
