跳至主要内容
跳至主要内容

SQL 控制台

SQL 控制台是在 ClickHouse Cloud 中探索和查询数据库的最快、最简单的方法。您可以使用 SQL 控制台来

  • 连接到您的 ClickHouse Cloud 服务
  • 查看、筛选和排序表格数据
  • 执行查询,只需点击几下即可可视化结果数据
  • 与团队成员共享查询,并更有效地协作。

探索表格

查看表格列表和模式信息

您可以在左侧边栏区域找到您的 ClickHouse 实例中包含的表格概述。使用左侧栏顶部的数据库选择器来查看特定数据库中的表格

列表中的表格也可以展开以查看列和类型

探索表格数据

点击列表中的表格,在新的标签页中打开它。在表格视图中,数据可以轻松查看、选择和复制。请注意,复制粘贴到 Microsoft Excel 和 Google Sheets 等电子表格应用程序时,结构和格式都会被保留。您可以使用页脚中的导航在表格数据页面之间切换(以 30 行递增的方式分页)。

检查单元格数据

可以使用单元格检查器工具来查看单个单元格中包含的大量数据。要打开它,请右键单击单元格并选择“检查单元格”。可以通过点击检查器内容右上角的复制图标来复制单元格检查器的内容。

筛选和排序表格

排序表格

要在 SQL 控制台中对表格进行排序,请打开表格并选择工具栏中的“排序”按钮。此按钮将打开一个菜单,允许您配置排序。您可以选择要排序的列并配置排序顺序(升序或降序)。选择“应用”或按 Enter 键以对表格进行排序

SQL 控制台还允许您向表格添加多个排序。再次点击“排序”按钮以添加另一个排序。请注意:排序按它们在排序窗格中出现的顺序(从上到下)应用。要删除排序,只需点击排序旁边的“x”按钮。

筛选表格

要在 SQL 控制台中筛选表格,请打开表格并选择“筛选”按钮。与排序一样,此按钮将打开一个菜单,允许您配置筛选器。您可以选择要筛选的列并选择必要的标准。SQL 控制台会智能地显示与列中包含的数据类型相对应的筛选选项。

当您对筛选器满意时,可以选择“应用”来筛选数据。您还可以添加其他筛选器,如下所示。

与排序功能类似,点击筛选器旁边的“x”按钮将其删除。

同时筛选和排序

SQL 控制台允许您同时筛选和排序表格。为此,请使用上述步骤添加所有所需的筛选器和排序,然后点击“应用”按钮。

从筛选器和排序创建查询

SQL 控制台可以将您的排序和筛选器直接转换为查询,只需点击一下即可。只需从工具栏中选择“创建查询”按钮,并选择您选择的排序和筛选参数。点击“创建查询”后,将打开一个新的查询标签页,其中预填充了与表格视图中包含的数据相对应的 SQL 命令。

注意

使用“创建查询”功能时,筛选器和排序不是必需的。

您可以通过阅读 (link) 查询文档来了解更多关于在 SQL 控制台中查询的信息。

创建和运行查询

创建查询

SQL 控制台中创建新查询有两种方法。

  • 点击标签栏中的“+”按钮
  • 从左侧边栏查询列表中选择“新建查询”按钮

运行查询

要运行查询,请将您的 SQL 命令输入到 SQL 编辑器中,然后点击“运行”按钮或使用快捷键 cmd / ctrl + enter。要按顺序编写和运行多个命令,请确保在每个命令后添加一个分号。

查询执行选项 默认情况下,点击运行按钮将运行 SQL 编辑器中包含的所有命令。SQL 控制台支持其他两种查询执行选项

  • 运行选定的命令
  • 运行光标处的命令

要运行选定的命令,请突出显示所需的命令或命令序列,然后点击“运行”按钮(或使用 cmd / ctrl + enter 快捷键)。当存在选择时,您还可以从 SQL 编辑器上下文菜单(通过右键单击编辑器中的任何位置打开)中选择“运行所选内容”。

可以通过两种方式运行当前光标位置的命令

  • 从扩展的运行选项菜单中选择“光标处”(或使用相应的 cmd / ctrl + shift + enter 键盘快捷键
  • 从 SQL 编辑器上下文菜单中选择“运行光标处”
注意

执行时,光标处的命令将闪烁黄色。

取消查询

当查询正在运行时,查询编辑器工具栏中的“运行”按钮将被替换为“取消”按钮。只需点击此按钮或按 Esc 即可取消查询。请注意:已经返回的任何结果将在取消后保留。

保存查询

如果之前未命名,您的查询应称为“未命名查询”。点击查询名称以更改它。重命名查询将导致查询被保存。

您还可以使用保存按钮或 cmd / ctrl + s 键盘快捷键来保存查询。

使用 GenAI 管理查询

此功能允许您将查询编写为自然语言问题,并让查询控制台根据可用表格的上下文创建 SQL 查询。GenAI 还可以帮助您调试查询。

有关 GenAI 的更多信息,请查看 ClickHouse Cloud 博客中宣布推出 GenAI 驱动的查询建议

表格设置

让我们导入英国房价示例数据集,并使用它来创建一些 GenAI 查询。

  1. 打开 ClickHouse Cloud 服务。

  2. 通过点击 + 图标创建新查询。

  3. 粘贴并运行以下代码

    CREATE TABLE uk_price_paid
    (
        price UInt32,
        date Date,
        postcode1 LowCardinality(String),
        postcode2 LowCardinality(String),
        type Enum8('terraced' = 1, 'semi-detached' = 2, 'detached' = 3, 'flat' = 4, 'other' = 0),
        is_new UInt8,
        duration Enum8('freehold' = 1, 'leasehold' = 2, 'unknown' = 0),
        addr1 String,
        addr2 String,
        street LowCardinality(String),
        locality LowCardinality(String),
        town LowCardinality(String),
        district LowCardinality(String),
        county LowCardinality(String)
    )
    ENGINE = MergeTree
    ORDER BY (postcode1, postcode2, addr1, addr2);
    

    此查询应完成大约 1 秒钟。完成后,您应该有一个名为 `uk_price_paid` 的空表格。

  4. 创建新查询并粘贴以下查询

    INSERT INTO uk_price_paid
    WITH
       splitByChar(' ', postcode) AS p
    SELECT
        toUInt32(price_string) AS price,
        parseDateTimeBestEffortUS(time) AS date,
        p[1] AS postcode1,
        p[2] AS postcode2,
        transform(a, ['T', 'S', 'D', 'F', 'O'], ['terraced', 'semi-detached', 'detached', 'flat', 'other']) AS type,
        b = 'Y' AS is_new,
        transform(c, ['F', 'L', 'U'], ['freehold', 'leasehold', 'unknown']) AS duration,
        addr1,
        addr2,
        street,
        locality,
        town,
        district,
        county
    FROM url(
        'http://prod.publicdata.landregistry.gov.uk.s3-website-eu-west-1.amazonaws.com/pp-complete.csv',
        'CSV',
        'uuid_string String,
        price_string String,
        time String,
        postcode String,
        a String,
        b String,
        c String,
        addr1 String,
        addr2 String,
        street String,
        locality String,
        town String,
        district String,
        county String,
        d String,
        e String'
    ) SETTINGS max_http_get_redirects=10;
    

此查询从 gov.uk 网站获取数据集。此文件约为 4GB,因此此查询需要几分钟才能完成。一旦 ClickHouse 处理完查询,您应该在 uk_price_paid 表格中拥有整个数据集。

查询创建

让我们使用自然语言创建一个查询。

  1. 选择 uk_price_paid 表格,然后点击 创建查询

  2. 点击 生成 SQL。您可能会被要求接受您的查询将被发送到 Chat-GPT。您必须选择 我同意 以继续。

  3. 您现在可以使用此提示输入自然语言查询,并让 ChatGPT 将其转换为 SQL 查询。在本例中,我们将输入

    按年份显示 uk_price_paid 交易的总价和总数。

  4. 控制台将生成我们正在寻找的查询,并将其显示在一个新标签页中。在本例中,GenAI 创建了以下查询

    -- Show me the total price and total number of all uk_price_paid transactions by year.
    SELECT year(date), sum(price) as total_price, Count(*) as total_transactions
    FROM uk_price_paid
    GROUP BY year(date)
    
  5. 在验证查询正确后,点击 运行 以执行它。

调试

现在,让我们测试 GenAI 的查询调试功能。

  1. 通过点击 + 图标创建新查询,并粘贴以下代码

    -- Show me the total price and total number of all uk_price_paid transactions by year.
    SELECT year(date), sum(pricee) as total_price, Count(*) as total_transactions
    FROM uk_price_paid
    GROUP BY year(date)
    
  2. 点击 运行。由于我们试图从 pricee 而不是 price 中获取值,因此查询失败。

  3. 点击 修复查询

  4. GenAI 将尝试修复查询。在本例中,它将 pricee 更改为 price。它还意识到 toYear 是在此场景中更好的函数。

  5. 选择 应用 以将建议的更改添加到您的查询,然后单击 运行

请记住,GenAI 是一项实验性功能。在使用 GenAI 生成的查询对任何数据集进行操作时,请务必小心。

高级查询功能

搜索查询结果

执行查询后,您可以使用结果窗格中的搜索输入快速搜索返回的结果集。此功能有助于预览附加 WHERE 子句的结果,或只是检查结果集中是否包含特定数据。在搜索输入中输入值后,结果窗格将更新并返回包含与输入值匹配条目的记录。在本例中,我们将查找 hackernews 表中包含 ClickHouse(不区分大小写)的评论中的所有 breakfast 实例

注意:任何与输入值匹配的字段都将被返回。例如,上述屏幕截图中的第三条记录在 by 字段中不匹配 'breakfast',但 text 字段匹配

调整分页设置

默认情况下,查询结果窗格会将每条结果记录显示在一页上。对于较大的结果集,最好对结果进行分页以便更轻松地查看。可以使用结果窗格右下角的分页选择器来完成此操作

选择页面大小将立即对结果集应用分页,并在结果窗格页脚的中间显示导航选项

导出查询结果数据

可以直接从 SQL 控制台将查询结果集轻松导出为 CSV 格式。为此,请打开结果窗格工具栏右侧的 ••• 菜单,然后选择“下载为 CSV”。

可视化查询数据

有些数据更容易以图表形式解释。您可以直接从 SQL 控制台中通过几次单击,从查询结果数据中快速创建可视化效果。例如,我们将使用一个计算纽约出租车行程每周统计信息的查询

SELECT
   toStartOfWeek(pickup_datetime) AS week,
   sum(total_amount) AS fare_total,
   sum(trip_distance) AS distance_total,
   count(*) AS trip_total
FROM
   nyc_taxi
GROUP BY
   1
ORDER BY
   1 ASC

如果没有可视化效果,这些结果很难解释。让我们将它们转换为图表。

创建图表

要开始构建可视化效果,请从查询结果窗格工具栏中选择“图表”选项。将出现图表配置窗格

我们将从创建一个简单的条形图开始,跟踪 trip_totalweek 的变化。为此,我们将 week 字段拖到 x 轴,将 trip_total 字段拖到 y 轴

大多数图表类型支持数字轴上的多个字段。为了演示,我们将 fare_total 字段拖到 y 轴

自定义图表

SQL 控制台支持十种图表类型,可以从图表配置窗格中的图表类型选择器中选择。例如,我们可以轻松地将之前的图表类型从条形图更改为面积图

图表标题与提供数据的查询名称匹配。更新查询名称将导致图表标题也更新

可以在图表配置窗格的“高级”部分调整许多更高级的图表特征。首先,我们将调整以下设置

  • 副标题
  • 轴标题
  • x 轴的标签方向

我们的图表将相应地更新

在某些情况下,可能需要独立调整每个字段的轴刻度。这也可以通过在图表配置窗格的“高级”部分指定轴范围的最小值和最大值来完成。例如,上面的图表看起来不错,但为了演示 trip_totalfare_total 字段之间的相关性,需要对轴范围进行一些调整

共享查询

SQL 控制台使您可以与团队共享查询。当共享查询时,团队的所有成员都可以查看和编辑该查询。共享查询是与您的团队协作的好方法。

要共享查询,请单击查询工具栏中的“共享”按钮。

将打开一个对话框,允许您与团队的所有成员共享查询。如果您有多个团队,可以选择要共享查询的团队。

在某些情况下,可能需要独立调整每个字段的轴刻度。这也可以通过在图表配置窗格的“高级”部分指定轴范围的最小值和最大值来完成。例如,上面的图表看起来不错,但为了演示 trip_totalfare_total 字段之间的相关性,需要对轴范围进行一些调整

    © . This site is unofficial and not affiliated with ClickHouse, Inc.