From 92e7ba50dec8b05a27885caed41a902f9de2f18b Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 28 Oct 2024 08:41:52 +0800 Subject: [PATCH 1/9] docs/s3: new section for s3 interacting --- docs/zh/08-operation/12-multi.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index bb3326cf3e..ece590d6c8 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -109,9 +109,37 @@ s3migrate database ; | # | 参数 | 默认值 | 最小值 | 最大值 | 描述 | | :--- | :----------- | :----- | :----- | :------ | :----------------------------------------------------------- | | 1 | s3_keeplocal | 365 | 1 | 365000 | 数据在本地保留的天数,即 data 文件在本地磁盘保留多长时间后可以上传到 S3。默认单位:天,支持 m(分钟)、h(小时)和 d(天)三个单位 | -| 2 | s3_chunksize | 262144 | 131072 | 1048576 | 上传对象的大小阈值,与 TSDB_PAGESIZE 参数一样,不可修改,单位为 TSDB 页 | +| 2 | s3_chunksize | 262144 | 131072 | 1048576 | 上传对象的大小阈值,与 tsdb_pagesize 参数一样,不可修改,单位为 TSDB 页 | | 3 | s3_compact | 1 | 0 | 1 | TSDB 文件组首次上传 S3 时,是否自动进行 compact 操作。 | +### 对象存储交互 + +对象存储服务的使用成本与存储的数据量及请求次数相关,下面分别介绍数据的上传及下载过程。 + +#### 数据上传 + +当 TSDB 时序数据超过 `s3_keeplocal` 参数指定的时间,相关的数据文件会被切分成多个文件块,每个文件块的默认大小是 1G 字节 (`s3_chunksize * tsdb_pagesize`)。除了最后一个文件块保留在本地文件系统外,其余的文件块会被上 +传到对象存储服务。 + +```math +上传次数 = 数据文件大小 / 每个文件块大小 - 1 +``` + +在创建数据库时,可以通过 `s3_chunksize` 参数调整每个文件块的大小,从而控制每个数据文件的上传次数。 + +其它类型的文件如 head, stt, sma 等,保留在本地文件系统,以加速预计算相关查询。 + +#### 数据下载 + +在查询操作中,如果需要访问对象存储中的数据,TSDB 不会下载整个数据文件,而是计算所需数据在文件中的位置,只下载相应的数据块(请参考存储引擎部分)到 TSDB 页缓存中,然后将数据返回给查询执行引擎。后续查询首先检查页缓 +存,查看数据是否已被缓存。如果数据已缓存,则直接使用缓存中的数据,而无需重复从对象存储下载,从而有效降低从对象存储下载数据的次数。 + +```math +下载次数 = 查询需要的数据块数量 - 已缓存的数据块数量 +``` + +页缓存是内存缓存,节点重启后,再次查询需要重新下载数据。缓存采用 LRU (Least Recently Used) 策略,当缓存空间不足时,最近最少使用的数据将被淘汰。缓存的大小可以通过 `s3PageCacheSize` 参数进行调整,通常来说,缓存越>大,下载次数越少。 + ## Azure Blob 存储 本节介绍在 TDengine Enterprise 如何使用微软 Azure Blob 对象存储。本功能是上一小节‘对象存储’功能的扩展,需额外依赖 Flexify 服务提供的 S3 网关。通过适当的参数配置,可以把大部分较冷的时序数据存储到 Azure Blob 服务中。 From cee0626163c7481f8ebd350db98b7a0bb799f737 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 28 Oct 2024 08:48:19 +0800 Subject: [PATCH 2/9] docs/s3: fix incorrect line feed --- docs/zh/08-operation/12-multi.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index ece590d6c8..b8b231fbdb 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -118,8 +118,7 @@ s3migrate database ; #### 数据上传 -当 TSDB 时序数据超过 `s3_keeplocal` 参数指定的时间,相关的数据文件会被切分成多个文件块,每个文件块的默认大小是 1G 字节 (`s3_chunksize * tsdb_pagesize`)。除了最后一个文件块保留在本地文件系统外,其余的文件块会被上 -传到对象存储服务。 +当 TSDB 时序数据超过 `s3_keeplocal` 参数指定的时间,相关的数据文件会被切分成多个文件块,每个文件块的默认大小是 1G 字节 (`s3_chunksize * tsdb_pagesize`)。除了最后一个文件块保留在本地文件系统外,其余的文件块会被上传到对象存储服务。 ```math 上传次数 = 数据文件大小 / 每个文件块大小 - 1 From 4be0380e17944400fa3d26e23db10ff2acb42027 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 28 Oct 2024 08:51:39 +0800 Subject: [PATCH 3/9] fix typos --- docs/zh/08-operation/12-multi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index b8b231fbdb..d4c869a27a 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -137,7 +137,7 @@ s3migrate database ; 下载次数 = 查询需要的数据块数量 - 已缓存的数据块数量 ``` -页缓存是内存缓存,节点重启后,再次查询需要重新下载数据。缓存采用 LRU (Least Recently Used) 策略,当缓存空间不足时,最近最少使用的数据将被淘汰。缓存的大小可以通过 `s3PageCacheSize` 参数进行调整,通常来说,缓存越>大,下载次数越少。 +页缓存是内存缓存,节点重启后,再次查询需要重新下载数据。缓存采用 LRU (Least Recently Used) 策略,当缓存空间不足时,最近最少使用的数据将被淘汰。缓存的大小可以通过 `s3PageCacheSize` 参数进行调整,通常来说,缓存越大,下载次数越少。 ## Azure Blob 存储 本节介绍在 TDengine Enterprise 如何使用微软 Azure Blob 对象存储。本功能是上一小节‘对象存储’功能的扩展,需额外依赖 Flexify 服务提供的 S3 网关。通过适当的参数配置,可以把大部分较冷的时序数据存储到 Azure Blob 服务中。 From 67a05c28600c6cd0a1da9b04858aa3d2002ef9b4 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 28 Oct 2024 08:53:33 +0800 Subject: [PATCH 4/9] fix line ending --- docs/zh/08-operation/12-multi.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index d4c869a27a..6237613223 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -130,8 +130,7 @@ s3migrate database ; #### 数据下载 -在查询操作中,如果需要访问对象存储中的数据,TSDB 不会下载整个数据文件,而是计算所需数据在文件中的位置,只下载相应的数据块(请参考存储引擎部分)到 TSDB 页缓存中,然后将数据返回给查询执行引擎。后续查询首先检查页缓 -存,查看数据是否已被缓存。如果数据已缓存,则直接使用缓存中的数据,而无需重复从对象存储下载,从而有效降低从对象存储下载数据的次数。 +在查询操作中,如果需要访问对象存储中的数据,TSDB 不会下载整个数据文件,而是计算所需数据在文件中的位置,只下载相应的数据块(请参考存储引擎部分)到 TSDB 页缓存中,然后将数据返回给查询执行引擎。后续查询首先检查页缓存,查看数据是否已被缓存。如果数据已缓存,则直接使用缓存中的数据,而无需重复从对象存储下载,从而有效降低从对象存储下载数据的次数。 ```math 下载次数 = 查询需要的数据块数量 - 已缓存的数据块数量 From b89d01a11f1b013e4cebd406d0d4305b32ee1bd1 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 28 Oct 2024 10:46:59 +0800 Subject: [PATCH 5/9] more detailed upload formular --- docs/zh/08-operation/12-multi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index 6237613223..9b1e7fc7ba 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -121,7 +121,7 @@ s3migrate database ; 当 TSDB 时序数据超过 `s3_keeplocal` 参数指定的时间,相关的数据文件会被切分成多个文件块,每个文件块的默认大小是 1G 字节 (`s3_chunksize * tsdb_pagesize`)。除了最后一个文件块保留在本地文件系统外,其余的文件块会被上传到对象存储服务。 ```math -上传次数 = 数据文件大小 / 每个文件块大小 - 1 +上传次数 = 数据文件大小 / (s3_chunksize * tsdb_pagesize) - 1 ``` 在创建数据库时,可以通过 `s3_chunksize` 参数调整每个文件块的大小,从而控制每个数据文件的上传次数。 From 9fecac785013a4f847041ff73a1e22a0959b0ceb Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 28 Oct 2024 13:51:51 +0800 Subject: [PATCH 6/9] refactor desc. on data block --- docs/zh/08-operation/12-multi.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index 9b1e7fc7ba..128aab2174 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -112,7 +112,7 @@ s3migrate database ; | 2 | s3_chunksize | 262144 | 131072 | 1048576 | 上传对象的大小阈值,与 tsdb_pagesize 参数一样,不可修改,单位为 TSDB 页 | | 3 | s3_compact | 1 | 0 | 1 | TSDB 文件组首次上传 S3 时,是否自动进行 compact 操作。 | -### 对象存储交互 +### 对象存储读写次数估算 对象存储服务的使用成本与存储的数据量及请求次数相关,下面分别介绍数据的上传及下载过程。 @@ -130,7 +130,9 @@ s3migrate database ; #### 数据下载 -在查询操作中,如果需要访问对象存储中的数据,TSDB 不会下载整个数据文件,而是计算所需数据在文件中的位置,只下载相应的数据块(请参考存储引擎部分)到 TSDB 页缓存中,然后将数据返回给查询执行引擎。后续查询首先检查页缓存,查看数据是否已被缓存。如果数据已缓存,则直接使用缓存中的数据,而无需重复从对象存储下载,从而有效降低从对象存储下载数据的次数。 +在查询操作中,如果需要访问对象存储中的数据,TSDB 不会下载整个数据文件,而是计算所需数据在文件中的位置,只下载相应的数据到 TSDB 页缓存中,然后将数据返回给查询执行引擎。后续查询首先检查页缓存,查看数据是否已被缓存。如果数据已缓存,则直接使用缓存中的数据,而无需重复从对象存储下载,从而有效降低从对象存储下载数据的次数。 + +相邻的多个数据页(创建数据库时,通过 `tsdb_pagesize` 参数指定数据页大小,默认 4K 字节)会作为一个数据块从对象存储下载一次,以减少从对象存储下载的次数。 ```math 下载次数 = 查询需要的数据块数量 - 已缓存的数据块数量 From f114dfc529706c7f2628556ed4a0885fe8ac7e4d Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 28 Oct 2024 13:58:08 +0800 Subject: [PATCH 7/9] refact desc. for tsdb page size --- docs/zh/08-operation/12-multi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index 128aab2174..e015e80cc8 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -132,7 +132,7 @@ s3migrate database ; 在查询操作中,如果需要访问对象存储中的数据,TSDB 不会下载整个数据文件,而是计算所需数据在文件中的位置,只下载相应的数据到 TSDB 页缓存中,然后将数据返回给查询执行引擎。后续查询首先检查页缓存,查看数据是否已被缓存。如果数据已缓存,则直接使用缓存中的数据,而无需重复从对象存储下载,从而有效降低从对象存储下载数据的次数。 -相邻的多个数据页(创建数据库时,通过 `tsdb_pagesize` 参数指定数据页大小,默认 4K 字节)会作为一个数据块从对象存储下载一次,以减少从对象存储下载的次数。 +相邻的多个数据页会作为一个数据块从对象存储下载一次,以减少从对象存储下载的次数。每个数据页的大小,在创建数据库时,通过 `tsdb_pagesize` 参数指定,默认 4K 字节。 ```math 下载次数 = 查询需要的数据块数量 - 已缓存的数据块数量 From d9ee12b8f6d1cc819fd4ca8b44c9e68a8b432c1f Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 28 Oct 2024 14:29:07 +0800 Subject: [PATCH 8/9] refact s3_chunksize's default value --- docs/zh/08-operation/12-multi.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index e015e80cc8..6afd642752 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -109,7 +109,7 @@ s3migrate database ; | # | 参数 | 默认值 | 最小值 | 最大值 | 描述 | | :--- | :----------- | :----- | :----- | :------ | :----------------------------------------------------------- | | 1 | s3_keeplocal | 365 | 1 | 365000 | 数据在本地保留的天数,即 data 文件在本地磁盘保留多长时间后可以上传到 S3。默认单位:天,支持 m(分钟)、h(小时)和 d(天)三个单位 | -| 2 | s3_chunksize | 262144 | 131072 | 1048576 | 上传对象的大小阈值,与 tsdb_pagesize 参数一样,不可修改,单位为 TSDB 页 | +| 2 | s3_chunksize | 131072 | 131072 | 1048576 | 上传对象的大小阈值,与 tsdb_pagesize 参数一样,不可修改,单位为 TSDB 页 | | 3 | s3_compact | 1 | 0 | 1 | TSDB 文件组首次上传 S3 时,是否自动进行 compact 操作。 | ### 对象存储读写次数估算 @@ -118,7 +118,7 @@ s3migrate database ; #### 数据上传 -当 TSDB 时序数据超过 `s3_keeplocal` 参数指定的时间,相关的数据文件会被切分成多个文件块,每个文件块的默认大小是 1G 字节 (`s3_chunksize * tsdb_pagesize`)。除了最后一个文件块保留在本地文件系统外,其余的文件块会被上传到对象存储服务。 +当 TSDB 时序数据超过 `s3_keeplocal` 参数指定的时间,相关的数据文件会被切分成多个文件块,每个文件块的默认大小是 500M 字节 (`s3_chunksize * tsdb_pagesize`)。除了最后一个文件块保留在本地文件系统外,其余的文件块会被上传到对象存储服务。 ```math 上传次数 = 数据文件大小 / (s3_chunksize * tsdb_pagesize) - 1 From fb16e4912e7ae093f9e8072acd8c1fd9fbcf1743 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 29 Oct 2024 08:49:11 +0800 Subject: [PATCH 9/9] rename s3_chunksize to s3_chunkpages & fix default value --- docs/zh/08-operation/12-multi.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/zh/08-operation/12-multi.md b/docs/zh/08-operation/12-multi.md index 6afd642752..5489226ce1 100644 --- a/docs/zh/08-operation/12-multi.md +++ b/docs/zh/08-operation/12-multi.md @@ -109,7 +109,7 @@ s3migrate database ; | # | 参数 | 默认值 | 最小值 | 最大值 | 描述 | | :--- | :----------- | :----- | :----- | :------ | :----------------------------------------------------------- | | 1 | s3_keeplocal | 365 | 1 | 365000 | 数据在本地保留的天数,即 data 文件在本地磁盘保留多长时间后可以上传到 S3。默认单位:天,支持 m(分钟)、h(小时)和 d(天)三个单位 | -| 2 | s3_chunksize | 131072 | 131072 | 1048576 | 上传对象的大小阈值,与 tsdb_pagesize 参数一样,不可修改,单位为 TSDB 页 | +| 2 | s3_chunkpages | 131072 | 131072 | 1048576 | 上传对象的大小阈值,与 tsdb_pagesize 参数一样,不可修改,单位为 TSDB 页 | | 3 | s3_compact | 1 | 0 | 1 | TSDB 文件组首次上传 S3 时,是否自动进行 compact 操作。 | ### 对象存储读写次数估算 @@ -118,13 +118,13 @@ s3migrate database ; #### 数据上传 -当 TSDB 时序数据超过 `s3_keeplocal` 参数指定的时间,相关的数据文件会被切分成多个文件块,每个文件块的默认大小是 500M 字节 (`s3_chunksize * tsdb_pagesize`)。除了最后一个文件块保留在本地文件系统外,其余的文件块会被上传到对象存储服务。 +当 TSDB 时序数据超过 `s3_keeplocal` 参数指定的时间,相关的数据文件会被切分成多个文件块,每个文件块的默认大小是 512M 字节 (`s3_chunkpages * tsdb_pagesize`)。除了最后一个文件块保留在本地文件系统外,其余的文件块会被上传到对象存储服务。 ```math -上传次数 = 数据文件大小 / (s3_chunksize * tsdb_pagesize) - 1 +上传次数 = 数据文件大小 / (s3_chunkpages * tsdb_pagesize) - 1 ``` -在创建数据库时,可以通过 `s3_chunksize` 参数调整每个文件块的大小,从而控制每个数据文件的上传次数。 +在创建数据库时,可以通过 `s3_chunkpages` 参数调整每个文件块的大小,从而控制每个数据文件的上传次数。 其它类型的文件如 head, stt, sma 等,保留在本地文件系统,以加速预计算相关查询。