这是用户在 2024-8-25 15:16 为 https://clickhouse.com/docs/en/getting-started/quick-start 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
Skip to main content 跳至主要内容

ClickHouse Quick Start ClickHouse快速入门

Tip 提示

This page helps you set up open-source ClickHouse on your own machine. The fastest way to deploy ClickHouse and to get access to our exclusive SQL Console is to use ClickHouse Cloud.
此页面可帮助您在自己的计算机上设置开源 ClickHouse。部署 ClickHouse 并访问我们专有的 SQL 控制台的最快方法是使用 ClickHouse Cloud。

New users get $300 in free trial credits. Click here to sign up.
新用户可获得 300 美元的免费试用积分。点击此处注册。

1: Download the binary
1:下载二进制文件

ClickHouse runs natively on Linux, FreeBSD and macOS, and runs on Windows via the WSL. The simplest way to download ClickHouse locally is to run the following curl command. It determines if your operating system is supported, then downloads an appropriate ClickHouse binary:
ClickHouse 在 Linux、FreeBSD 和 macOS 上本机运行,并通过WSL在 Windows 上运行。在本地下载 ClickHouse 最简单的方法是运行以下curl命令。它确定您的操作系统是否受支持,然后下载适当的 ClickHouse 二进制文件:

curl https://clickhouse.com/ | sh

2: Start the server
2:启动服务器

Run the following command to start the ClickHouse server:
运行以下命令启动ClickHouse服务器:

./clickhouse server

3: Start the client
3:启动客户端

Use the clickhouse-client to connect to your ClickHouse service. Open a new Terminal, change directories to where your clickhouse binary is saved, and run the following command:
使用clickhouse-client连接到您的 ClickHouse 服务。打开一个新的终端,将目录更改为保存clickhouse二进制文件的位置,然后运行以下命令:

./clickhouse client

You should see a smiling face as it connects to your service running on localhost:
当它连接到在本地主机上运行的服务时,您应该看到一张笑脸:

my-host :)

4: Create a table
4:创建

Use CREATE TABLE to define a new table. Typical SQL DDL commands work in ClickHouse with one addition - tables in ClickHouse require an ENGINE clause. Use MergeTree to take advantage of the performance benefits of ClickHouse:
使用CREATE TABLE定义一个新表。典型的 SQL DDL 命令在 ClickHouse 中工作,但有一项补充 - ClickHouse 中的表需要ENGINE子句。使用MergeTree来利用 ClickHouse 的性能优势:

CREATE TABLE my_first_table
(
user_id UInt32,
message String,
timestamp DateTime,
metric Float32
)
ENGINE = MergeTree
PRIMARY KEY (user_id, timestamp)

5. Insert data
5.插入数据

You can use the familiar INSERT INTO TABLE command with ClickHouse, but it is important to understand that each insert into a MergeTree table causes a part (folder) to be created in storage. To minimize parts, bulk insert lots of rows at a time (tens of thousands or even millions at once).
您可以在 ClickHouse 中使用熟悉的INSERT INTO TABLE命令,但重要的是要了解每次插入MergeTree表都会导致在存储中创建一个部分(文件夹)。为了最大限度地减少部件,请一次批量插入大量行(一次插入数万甚至数百万行)。

INSERT INTO my_first_table (user_id, message, timestamp, metric) VALUES
(101, 'Hello, ClickHouse!', now(), -1.0 ),
(102, 'Insert a lot of rows per batch', yesterday(), 1.41421 ),
(102, 'Sort your data based on your commonly-used queries', today(), 2.718 ),
(101, 'Granules are the smallest chunks of data read', now() + 5, 3.14159 )

6. Query your new table
6. 查询你的新

You can write a SELECT query just like you would with any SQL database:
您可以像使用任何 SQL 数据库一样编写SELECT查询:

 SELECT *
FROM my_first_table
ORDER BY timestamp

Notice the response comes back in a nice table format:
请注意,响应以良好的表格格式返回:

┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐
│ 102 │ Insert a lot of rows per batch │ 2022-03-21 00:00:00 │ 1.41421 │
│ 102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │ 2.718 │
│ 101 │ Hello, ClickHouse! │ 2022-03-22 14:04:09 │ -1 │
│ 101 │ Granules are the smallest chunks of data read │ 2022-03-22 14:04:14 │ 3.14159 │
└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘

4 rows in set. Elapsed: 0.008 sec.

7: Insert your own data
7:插入您自己的数据

The next step is to get your current data into ClickHouse. We have lots of table functions and integrations for ingesting data. We have some examples in the tabs below, or check out our Integrations for a long list of technologies that integrate with ClickHouse.
下一步是将当前数据导入 ClickHouse。我们有很多用于摄取数据的表函数集成。我们在下面的选项卡中提供了一些示例,或者查看我们的集成以获取与 ClickHouse 集成的一长串技术。

Use the s3 table function to read files from S3. It's a table function - meaning that the result is a table that can be:
使用s3表函数从 S3 读取文件。它是一个表函数 - 意味着结果是一个表,可以是:

  1. used as the source of a SELECT query (allowing you to run ad-hoc queries and leave your data in S3), or...
    用作SELECT查询的源(允许您运行即席查询并将数据保留在 S3 中),或者...
  2. insert the resulting table into a MergeTree table (when you are ready to move your data into ClickHouse)
    将结果表插入MergeTree表(当您准备好将数据移至 ClickHouse 时)

An ad-hoc query looks like:
临时查询如下所示:

SELECT
passenger_count,
avg(toFloat32(total_amount))
FROM s3(
'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/trips_0.gz',
'TabSeparatedWithNames'
)
GROUP BY passenger_count
ORDER BY passenger_count;

Moving the data into a ClickHouse table looks like the following, where nyc_taxi is a MergeTree table:
将数据移动到 ClickHouse 表中如下所示,其中nyc_taxiMergeTree表:

INSERT INTO nyc_taxi
SELECT * FROM s3(
'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/trips_0.gz',
'TabSeparatedWithNames'
)
SETTINGS input_format_allow_errors_num=25000;

View our collection of AWS S3 documentation pages for lots more details and examples of using S3 with ClickHouse.
查看我们的AWS S3 文档页面集合,了解更多详细信息以及将 S3 与 ClickHouse 结合使用的示例。

What's Next?
接下来是什么