

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

# 运行 SQL 查询
<a name="running-sql-queries"></a>

**注意**  
只有当负责支付查询计算费用的成员以活跃成员的身份加入协作时，您才能运行查询。

作为[可以查询的成员，您可以](glossary.md#glossary-member-who-can-query)通过以下方式运行 SQL 查询：
+ 使用 SQL 代码编辑器手动构建 SQL 查询。
+ 使用经批准的 SQL [分析模板](create-analysis-template.md)。
+ 使用**分析生成器用户界面**无需编写 SQL 代码即可生成查询。

当可以查询的成员对协作中的表运行 SQL 查询时， AWS Clean Rooms 将扮演相关角色来代表他们访问这些表。 AWS Clean Rooms 根据需要将分析规则应用于输入查询及其输出。

分析规则和输出约束是自动强制执行的。 AWS Clean Rooms 仅返回符合定义的分析规则的结果。

AWS Clean Rooms 支持可能与其他查询引擎不同的 SQL 查询。有关规范，请参阅 [AWS Clean Rooms SQL 参考](https://docs.aws.amazon.com/clean-rooms/latest/sql-reference/sql-reference.html)。如果要对受差别隐私保护的数据表运行查询，您应该确保查询与 AWS Clean Rooms Differential Privacy 的[通用查询结构](analysis-rules-custom.md#dp-query-structure-syntax)兼容。

**注意**  
使用 [Clean Rooms 加密计算](crypto-computing.md)时，并非所有 SQL 操作都会生成有效的结果。例如，您可以对加密列执行 COUNT，但是对加密的数字执行 SUM 会导致错误。此外，查询还可能产生错误的结果。例如，SUM 密封列的查询会产生错误。但是，对密封列的 GROUP BY 查询似乎成功了，但生成的组与通过对 cleartext 的 GROUP BY 查询生成的组不同。

[为查询计算费用付费的成员](glossary.md#glossary-member-paying-for-query-compute)要对协作中运行的查询付费。

可以查询的[成员可以选择多个可以接收结果的成员](glossary.md#glossary-member-who-can-receive-results)，以接收来自单个查询的结果。有关更多信息，请参阅 [使用 SQL 代码编辑器查询配置表](use-sql-editor.md)。有关接收查询结果的一般信息，请参见[接收和使用分析结果](receive-query-results.md)。

## 先决条件
<a name="sql-queries-prereqs"></a>

 在运行 SQL 查询之前，请确保具备以下条件：
+  AWS Clean Rooms 合作中的活跃会员
+ 访问协作中至少一个已配置的表
+ 确认负责查询计算成本的成员是活跃的协作成员

有关如何通过直接调用 AWS Clean Rooms [StartProtectedQuery API](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_StartProtectedQuery.html) 操作或使用来查询数据或查看查询的信息 AWS SDKs，请参阅 [AWS Clean Rooms API 参考](https://docs.aws.amazon.com/clean-rooms/latest/apireference/Welcome.html)。

有关查询日志记录的信息，请参阅[分析登录 AWS Clean Rooms](query-logs.md)。

**注意**  
如果您对[加密](glossary.md#glossary-encryption)数据表运行查询，则加密列的结果将被加密。

## SQL 查询的 Spark 属性配置
<a name="spark-properties-config"></a>

AWS Clean Rooms 使您可以选择通过为 SQL 查询配置支持的 Spark 属性来自定义 Spark 运行时行为。这些属性允许您微调性能、内存使用情况和查询执行参数。借助此功能，您可以更好地控制基于 Spark 的查询的处理方式，从而可以根据您的特定工作负载要求进行优化。

现在，您可以直接从 AWS Clean Rooms 控制台调整诸如随机分区、广播加入阈值和自适应查询执行参数之类的设置。此功能对于复杂的查询或大型数据集特别有用，其中默认配置可能不是最佳配置。通过微调这些 Spark 属性，您可以提高查询性能、减少资源消耗，并更好地管理基于 Spark 的协作分析的内存使用情况。

要利用此功能，你可以在查询界面中找到一个新的 **Spark 属性**部分。您可以从支持的属性列表中进行选择并指定自定义值。您也可以使用 [StartProtectedQuery API](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_StartProtectedQuery.html) 以编程方式配置 Spark 属性。这种高级配置选项使数据分析师和工程师能够优化查询，从而提高效率和可扩展性。

有关 Spark 属性的更多信息，包括默认值，请参阅 Apache [Spark 文档中的 Spark 属性](https://spark.apache.org/docs/latest/configuration.html#spark-properties)。

以下主题介绍如何使用 AWS Clean Rooms 控制台在协作中查询数据。

**Topics**
+ [先决条件](#sql-queries-prereqs)
+ [SQL 查询的 Spark 属性配置](#spark-properties-config)
+ [使用 SQL 代码编辑器查询配置表](use-sql-editor.md)
+ [使用 SQL 代码编辑器查询 ID 映射表](query-id-mapping-tables.md)
+ [使用 SQL 分析模板查询已配置的表](use-analysis-template.md)
+ [使用分析构建器查询](query-data-analysis-builder.md)
+ [查看差别隐私的影响](query-data-with-diff-privacy.md)
+ [查看最近的查询](view-queries-console.md)
+ [查看查询详细信息](view-query-details.md)