跳到主要内容
版本:Nightly

迁移本地 SQL 文件访问

在单机部署模式下,SQL 对本地文件的访问受到沙盒限制;在分布式部署模式下,SQL 对本地文件的访问被完全禁止。

单机模式

默认沙盒目录为 <storage.data_home>/copyCOPY 语句和外部表 location 中的相对路径将在该目录下解析;绝对路径仅在其位于沙盒目录内时才被接受。

升级前,请先梳理所有使用沙盒目录以外本地路径的 COPY 工作流和外部表,然后选择以下迁移方案之一:

  • 将文件移动到 <storage.data_home>/copy 目录下,并更新对应的 SQL 路径。
  • storage.copy_root 设置为一个包含这些文件的专用本地目录。
  • 将文件迁移到 S3、OSS、GCS 或 AzBlob,并更新对应的 SQL 路径。

请勿将 storage.copy_root 设置为 storage.data_home,或设置为包含 GreptimeDB 数据、WAL、manifest 或配置文件的目录。GreptimeDB 会拒绝暴露其内部数据目录的 copy root 配置。

storage.data_home 为对象存储 URL 时,除非 storage.copy_root 显式指定了一个本地目录,否则 SQL 对本地文件的访问将被禁止。

分布式模式

分布式前端和数据节点进程会拒绝 COPY TABLECOPY QUERYCOPY DATABASE 以及外部表中使用的本地路径。升级前,请将这些工作流和表迁移到 S3、OSS、GCS 或 AzBlob。