选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

在 Amazon Keyspaces 中创建用户定义的类型 (UDT)

聚焦模式
在 Amazon Keyspaces 中创建用户定义的类型 (UDT) - Amazon Keyspaces(Apache Cassandra 兼容)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

要UDT在单区域密钥空间中创建,您可以使用中的CREATE TYPE语句CQL、带的create-type AWS CLI命令或控制台。

UDT名称必须包含 48 个字符或更少,必须以字母字符开头,并且只能包含字母数字字符和下划线。Amazon Keyspaces 会自动将大写字符转换为小写字符。

或者,你可以用双引号声明一个UDT名称。使用双引号声明UDT名称时,Amazon Keyspaces 会保留大写字母并允许使用特殊字符。

创建时也可以使用双引号作为名称的一部分UDT,但必须使用额外的双引号字符对每个双引号字符进行转义。

下表显示了允许使用的UDT名称的示例。第一列显示了在创建类型时如何输入名称,第二列显示了 Amazon Keyspaces 如何在内部设置名称的格式。Amazon Keyspaces 要求这样的操作使用格式化的名称。GetType

输入的名字 格式化名称 注意
MY_UDT my_udt 如果不使用双引号,Amazon Keyspaces 会将所有大写字符转换为小写字母。
"MY_UDT" MY_UDT 使用双引号时,Amazon Keyspaces 会尊重大写字符,并从格式化的名称中删除双引号。
"1234" 1234 使用双引号时,名称可以以数字开头,Amazon Keyspaces 会从格式化的名称中删除双引号。
"Special_Ch@r@cters<>!!" Special_Ch@r@cters<>!! 使用双引号时,名称可以包含特殊字符,Amazon Keyspaces 会从格式化的名称中删除双引号。
"nested""""""quotes" nested"""quotes Amazon Keyspaces 会从格式化名称中删除外部双引号和转义双引号。
Console
使用 Amazon Keyspaces 控制台创建用户定义的类型 (UDT)
  1. 登录并在家中打开 Amazon Keyspaces 控制台。 AWS Management Console https://console.aws.amazon.com/keyspaces/

  2. 在导航窗格中,选择 Keyspaces,然后从列表中选择一个密钥空间。

  3. 选择 UDTs 选项卡。

  4. 选择 “创建” UDT

  5. UDT详细信息下,输入名称UDT。在UDT字段下,您可以定义的架构UDT。

  6. 要完成操作,请选择 “创建” UDT。

Cassandra Query Language (CQL)
使用创建用户定义的类型 (UDT) CQL

在此示例中,我们创建了中使用的图书奖励表的新版本在 Amazon Keyspaces 中创建表。在此表中,我们存储了作者因某本书而获得的所有奖项。我们创建了两个嵌套UDTs的书籍,其中包含有关获得奖项的图书的信息。

  1. 使用名称catalog创建密钥空间。请注意,UDTs多区域密钥空间不支持此功能。

    CREATE KEYSPACE catalog WITH REPLICATION = {'class': 'SingleRegionStrategy'};
  2. 创建第一个类型。这种类型存储BISAC代码,这些代码用于定义书籍的类型。BISAC代码由字母数字代码和最多四个主题区域组成。

    CREATE TYPE catalog.bisac ( bisac_code text, subject1 text, subject2 text, subject3 text, subject4 text );
  3. 为图书奖励创建第二种类型,使用第一种类型UDT。必须冻UDT结嵌套。

    CREATE TYPE catalog.book ( award_title text, book_title text, publication_date date, page_count int, ISBN text, genre FROZEN <bisac> );
  4. 创建一个包含作者姓名列的表格,并使用列表类型作为图书奖项。请注意,必须冻结列表中UDT使用的内容。

    CREATE TABLE catalog.authors ( author_name text PRIMARY KEY, awards list <FROZEN <book>> );
  5. 在此步骤中,我们在新表中插入一行数据。

    CONSISTENCY LOCAL_QUORUM;
    INSERT INTO catalog.authors (author_name, awards) VALUES ( 'John Stiles' , [{ award_title: 'Wolf', book_title: 'Yesterday', publication_date: '2020-10-10', page_count: 345, ISBN: '026204630X', genre: { bisac_code:'FIC014090', subject1: 'FICTION', subject2: 'Historical', subject3: '20th Century', subject4: 'Post-World War II'} }, {award_title: 'Richard Roe', book_title: 'Who ate the cake?', publication_date: '2019-05-13', page_count: 193, ISBN: '9780262046305', genre: { bisac_code:'FIC022130', subject1: 'FICTION', subject2: 'Mystery & Detective', subject3: 'Cozy', subject4: 'Culinary'} }] );
  6. 在最后一步中,我们从表中读取数据。

    SELECT * FROM catalog.authors;

    命令的输出应如下所示。

    author_name | awards -------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- John Stiles | [{award_title: 'Wolf', book_title: 'Yesterday', publication_date: 2020-10-10, page_count: 345, isbn: '026204630X', genre: {bisac_code: 'FIC014090', subject1: 'FICTION', subject2: 'Historical', subject3: '20th Century', subject4: 'Post-World War II'}}, {award_title: 'Richard Roe', book_title: 'Who ate the cake?', publication_date: 2019-05-13, page_count: 193, isbn: '9780262046305', genre: {bisac_code: 'FIC022130', subject1: 'FICTION', subject2: 'Mystery & Detective', subject3: 'Cozy', subject4: 'Culinary'}}] (1 rows)

    有关 CQL 语法的更多信息,请参阅CREATE TYPE

CLI
使用创建用户定义的类型 (UDT) AWS CLI
  1. 要创建类型,可以使用以下语法。

    aws keyspaces create-type --keyspace-name 'my_keyspace' --type-name 'my_udt' --field-definitions '[ {"name" : "field1", "type" : "int"}, {"name" : "field2", "type" : "text"} ]'
  2. 该命令的输出与本示例类似。请注意,typeName返回的名称是格式化的UDT。

    { "keyspaceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/my_keyspace/", "typeName": "my_udt" }
使用 Amazon Keyspaces 控制台创建用户定义的类型 (UDT)
  1. 登录并在家中打开 Amazon Keyspaces 控制台。 AWS Management Console https://console.aws.amazon.com/keyspaces/

  2. 在导航窗格中,选择 Keyspaces,然后从列表中选择一个密钥空间。

  3. 选择 UDTs 选项卡。

  4. 选择 “创建” UDT

  5. UDT详细信息下,输入名称UDT。在UDT字段下,您可以定义的架构UDT。

  6. 要完成操作,请选择 “创建” UDT。

下一主题:

查看 UDTs

上一主题:

配置 权限
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。