我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
使用 DynamoDB Shell(亚马逊 DynamoDB 的命令行界面)查询数据
例如,您可以使用 ddbsh 通过运行以下命令来创建表:
你可以从
这篇文章涵盖两个主题。首先,您将学习如何连接到 DynamoDB,然后连接到本地 DynamoDB。
然后,您将学习一种使用 SQL WHERE 子句筛选数据的方法。
要开始使用,请从
连接到 亚马逊云科技 区域
ddbsh 使用 A
要连接到某个区域
-
查看 亚马逊云科技 配置文件中的默认区域、亚马逊云科技 访问密钥和 亚马逊云科技 密钥。 有关
文件 在操作系统上的确切位置,请参阅文档。该文档为DynamoDB 本地 和 Dynamo DB ( 网络服务)提供了具体的指导。 您还可以使用 aws 配置命令或设置环境变量来确定如何连接到 DynamoDB 。 - 检查您是否能够使用 亚马逊云科技 CLI 连接到 DynamoDB。例如,你可以运行:a
- 解决所有错误。在运行前面的命令且没有任何错误后,您将能够连接到您的默认区域,如随后的交互式会话所示。
-
在提示符下,你可以运行命令。要查看命令列表,请运行 HELP 命令。命令以分号 (;) 结尾
在本地连接到 DynamoDB。
在开始此步骤之前,请确保您的 ddbsh 版本为 0.2 或更高版本,亚马逊云科技 SDK 版本为 1.11 或更高版本。
连接到 DynamoDB 本地
-
按照说明在
您的计算机上本地 安装 DynamoDB 。 - 在终端会话中,设置环境变量以连接到 DynamoDB 本地实例。 http://localhost:8000
- 在第二个终端会话中,在本地启动 DynamoDB。 Blocal_lib-jar DynamoDBLocal.jar
- 返回第一个终端会话。你应该能够使用类似于以下内容的 亚马逊云科技 CLI 命令在本地连接 DynamoDB: es”: []}
-
如果你能够做到这一点,那么你可以使用
ddbsh 连接到本地实例。
区域名称后方括号 (*) 中的星号表示正在使用非标准端点。您现在已连接到本地 DynamoDB。请注意,当连接到 DynamoDB 本地时,单元测试将无法成功。
使用 WHERE 子句筛选数据
您可以将 WHERE 子句与 SE
LE
CT、U
PDAT
E 、DE
LE
TE 和
UPSER
T 一起使用。在 WH
ER
E 子句中,可以包含多个可与逻辑 AND
和
逻辑 O
R
连接的逻辑表达式 。此外,可以使用 NOT 运算符
否
定逻辑表达式。
支持以下逻辑表达式。
-
表单
属性 op 值的逻辑比较, 其中 属性 是表属性, op 是 <、>、<=、>=、= 或! 之一=。 -
如果@@
项目中存在 attr,则 attribute_ex ists (attr)的计算结果为真。 -
如果
attr 以前缀开头,则 begins_with(attr,前缀)的 计算结果为真。 -
如果
attr 介 于提供的两个值之间,则值和值之间的 attr 计算结果为真。 -
如果
attr 为指定类型,则属性类型(attr,类型)的 计算结果为真。
考虑以下示例数据:
以下是一些示例查询:
通过使用括号对项目进行分组,可以编写更复杂的查询。
你可以使用 EXPLA
I
N 命令来查看 ddbsh 将如何运行你的查询。
您也可以在
更新
中 使用 WHERE 子句。
您可以删除一个属性。以下示例删除了属性
c
。
清理
完成实验后,请记住删除您可能创建的所有表格,以避免产生费用。你可以使用
ddbsh 中的 D
E 来做到这一点。您可以前往启动 DynamoDB 的终端(第二个会话)在本地停止 DynamoDB,然后使用 Ctrl-C 将其关闭。
ROP TA
BL
结论
所以,就是这样,使用
ddbsh
, 你可以从表中读取、修改或删除数据,还可以使用 WHERE 子句筛选对哪些项目进行操作,就像
在
标准 SQL 中一样。
我们从客户和潜在客户那里听说,他们需要能够帮助他们学习 DynamoDB API 的资源。我们正在尝试一些解决方案,比如 ddbsh 中的 EXPL
A
I N 命令。如果您对此工具提供反馈,我们将不胜感激。我们可以在 ddbsh 中添加什么来使您更容易使用 DynamoDB?
如果您希望在 ddbsh 中实现某些特定功能或功能,请输入支持请求或直接发送电子邮件至 amrithie (at) amazon (dot) com 告诉我们。我们还在寻找有兴趣帮助扩展和维护 ddbsh 的贡献者。具体而言,如果您想提交拉取请求以使用户更容易安装和使用 ddbsh(例如通过提供打包脚本),我们将不胜感激。 已经提交了
这是你们所有人的最后行动呼吁。如果你想要一个在 macOS 上安装 ddbsh 的自制解决方案,请通过分叉、加星和观看 ddbsh GitHub 存储库来帮助我们。对
作者简介
Amrith Kumar
是亚马逊网络服务的高级首席工程师,在亚马逊 DynamoDB 上工作。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。