华为云用户手册

  • 操作步骤 以“ CS G-gateway_3.19.11.tar.gz”版本安装包为例,说明网关软件安装步骤。 使用PuTTY/FTP等工具登录待部署服务器,以root用户登录待部署服务器,使用SFTP工具将网关软件包和对应的SHA256文件上传到待部署服务器。进入存放“CSG-gateway_3.19.11.tar.gz”的目录,执行以下命令,查看已成功下载的安装包。 ls -ltr 回显信息如下: [root@localhost csg]# ls -ltrtotal 182692-rw-------. 1 root root 99 Apr 26 22:25 CSG-gateway_3.19.11.tar.gz.sha256-rw-------. 1 root root 187071260 Apr 26 22:25 CSG-gateway_3.19.11.tar.gz 执行如下命令校验网关软件包完整性,当回显信息显示OK,表明完整性校验成功。 sha256sum -c CSG-gateway_x.x.x.tar.gz.sha256 回显信息如下: [root@localhost csg]# sha256sum -c CSG-gateway_3.19.11.tar.gz.sha256CSG-gateway_3.19.11.tar.gz: OK 执行以下命令,解压安装包。 tar -zxvf CSG-gateway_x.x.x.tar.gz 回显信息如下: # tar -zxvf CSG-gateway_3.19.11.tar.gzCSG-gateway_3.19.11/CSG-gateway_3.19.11/vars/CSG-gateway_3.19.11/vars/main.ymlCSG-gateway_3.19.11/action/CSG-gateway_3.19.11/action/env.shCSG-gateway_3.19.11/action/uninstall.shCSG-gateway_3.19.11/action/install_all.shCSG-gateway_3.19.11/action/install_rpm.shCSG-gateway_3.19.11/action/stop_all.shCSG-gateway_3.19.11/action/start_all.shCSG-gateway_3.19.11/config/CSG-gateway_3.19.11/manifest.ymlCSG-gateway_3.19.11/repo/CSG-gateway_3.19.11/repo/filegateway-om-1.0.3.20190411175311-1.x86_64.rpmCSG-gateway_3.19.11/repo/filegateway-1.0.3.20190411175311-1.x86_64.rpmYou have mail in /var/spool/mail/root 执行以下命令,查看解压后的安装包。 ls –ltr 回显信息如下: # ls -ltrtotal 191076drwxr-xr-x. 6 root root 78 Apr 11 17:56 CSG-gateway_3.19.11- rw- r--r--. 1 root root 195658900 Apr 11 18:05 CSG-gateway_3.19.11.tar.gzYou have mail in /var/spool/mail/root 进入解压后安装包action文件目录,执行以下命令安装网关所必须的rpm软件包。 sh install_rpm.sh 安装日志回显如下信息,则网关安装成功: # sh install_rpm.sh Install all rpms finished. 如果网关服务器是ECS,安装rpm软件包长时间卡住或者执行失败,建议暂时绑定弹性公网IP,重新执行sh install_rpm.sh命令,完成rpm软件包安装后解绑弹性公网IP即可。 执行以下命令安装网关。 sh appctl.sh install 安装日志回显如下信息,则网关安装成功。 install filegateway success (可选)为了系统安全进行软件安全加固。 执行以下脚本命令,限制root用户使用ssh登录网关服务器。同时选择本地服务器对应IP地址,绑定到系统服务端口。 sh security_reinforce.sh 回显信息如下: [root@gateway ~]# sh {安装包目录}/action/security_reinforce.sh[root@dfv action]# sh security_reinforce.sh-create a new user csgmanager for login startuseradd: warning: the home directory already exists.Not copying any file from skel directory into it.Creating mailbox file: File existsChanging password for user csgmanager.New password:Retype new password:passwd: all authentication tokens updated successfully.-create a new user csgmanager for login end-prohibits the root from logging in through ssh start-prohibits the root from logging in through ssh end-bind IP address startplease specify a local IPv4 address as the manager IP(used by SSH service)option [0] : 111.111.111.111/19option [1] : 222.222.222.222/19select an existing option:0please specify a local IPv4 address as the service IP(used by NFS service)option [0] : 111.111.111.111/19option [1] : 222.222.222.222/19select an existing option:1[warning] you have chosen 111.111.111.111/19 as manager IP , 222.222.222.222/19 as service IP[warning] if bind the wrong IP address may cause the service to be abnormal[warning] enter "yes" to continue, enter others to reselect:yesprocessing...Files are successfully uploaded to the cloud. Time elapsed: 0 minWaiting for the gateway to stop...Command executed successfully.Main gateway process starting.......successfully.Monitoring process starting...successfully.Cache disk activating...successfully.config tomcat server ip 111.111.111.111.bind ntp server ip 111.111.111.111.-bind IP address endexecute end 执行了安全加固命令后,无法使用root账号通过ssh登录服务器。需先使用csgmanager账号通过ssh登录服务器,然后执行“su root”,通过密码认证切换到root用户。 为了系统的安全,建议定期修改csgmanager和root的密码。 在action文件目录下,执行如下命令,启动OM进程,开始使用网关。 sh appctl.sh start OM进程回显如下信息,则网关正常运行。 start filegateway successfully
  • 操作步骤 以root用户登录本地服务器。 挂载前,查看本地服务器系统是否安装NFS客户端。 表1 查询和安装NFS客户端 操作系统 查询命令 回显信息(已安装) 安装命令 Red Hat、Fedora或Oracle Enterprise Linux、Euler OS 2.3 rpm -qa|grep nfs libnfsidmapnfs-utils sudo yum -y install nfs-utils SUSE或OpenSUSE rpm -qa|grep nfs nfsidmap nfs-client zypper install nfs-client Debian或Ubuntu dpkg -l nfs-common nfs-common sudo apt-get install nfs-common 不同操作系统回显信息不同,如果回显表1信息,说明已经成功安装NFS客户端,则执行步骤3;如果未回显表中信息,则需执行表中安装命令安装NFS客户端。 登录客户端执行如下命令,创建本地挂载路径。 mkdir /本地路径 执行如下命令,挂载文件共享。 mount -t nfs -o vers=3,timeo=600,nolock 网关IP:/共享名称 /本地路径 执行如下命令,查看文件共享挂载结果。 df –h 在/etc/rc.local中追加如下加粗部分,确保操作系统重启时,能够自动挂载文件共享。 #!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/localmount -t nfs -o vers=3,timeo=600,nolock 网关IP:/共享名称 /本地路径 挂载成功后,用户可以在客户端使用CSG提供的NFS文件共享服务,进行相应的文件共享操作。
  • 操作步骤 登录CSG管理控制台。 在网关列表选择网关,单击待操作网关名称。 进入当前网关详情页面。 目前一个网关仅支持创建一个文件共享,一个文件共享对应一个桶目录或桶文件夹目录。 单击“创建文件共享”,进入文件共享创建页面,如图1。 图1 创建文件共享 设置共享名称,选择“桶”,输入“名称后缀”。 “桶”:在下拉列表中选择桶,作为文件共享源。因CSG目前仅支持数据上传到标准存储类型的桶,故下拉列表中仅显示未加密的标准存储类型桶。如果桶不存在,需先在OBS创建可用标准存储类型桶,再刷新桶列表选择。创建桶详细操作指导,请参考OBS创建桶。 (可选)“桶内文件夹”:桶中一级或多级文件夹名称,例如:一级文件夹/二级文件夹/....。设置后共享层级到文件夹层,网关读/写该文件夹中存储数据。自定义“名称后缀”允许包含数字、字母,及特殊字符“-”“_”,多层级间以“/”连接,且长度范围为0~64个字符。 “文件共享名称”:文件共享名称由桶名和桶内文件夹组成,格式为“桶名/名称后缀”。共享名称全局唯一,不能与任何已有共享名称重复,且创建成功后不能修改名称,创建时请设置合适的桶名。共享名称创建完成后作为文件共享的虚拟路径。 用户自定义的“桶内文件夹”对应桶中文件夹名称。如果桶中无该名称文件夹,将在桶中生成自定义名称的文件夹。 “文件共享名称”路径下文件的绝对路径总长度不能超过1024字符。 设置用户映射权限,选择“用户权限”。 “用户权限”:通过NFS协议中用户映射,可将客户端虚拟/实际用户或用户组的ID映射给正在对NFS进行读/写操作的用户,这个用户则具有映射用户或用户组ID所允许的权限。 “None”:默认取值,表示所有用户及所属用户组无映射。 “Root_Squash”:表示将Root用户及所属用户组映射为匿名用户或用户组。 “All_Squash”:表示将所有用户及所属用户组都映射为匿名用户或用户组。 (可选)设置客户端读/写权限。输入“只读客户端列表”和“读写客户端列表”。 “只读客户端列表”:只能读取OBS桶中对象的客户端。可输入多个客户端IP,用逗号隔开,支持输入IP、IP段、通配符“*”。 “读写客户端列表”:能读取OBS桶中对象和写入数据到OBS桶中的客户端。可输入多个客户端IP,用英文逗号隔开,支持输入IP、IP段、通配符“*”。 当一个客户端IP被同时设置了只读权限和读写权限时,取最大的权限生效,即有读写权限。 当客户端列表置空,即未设置客户端读/写权限时,禁止所有客户端对共享的OBS桶目录读/写权限。 当客户端列表置*,表示OBS桶目录对所有客户端开放,即所有客户端对共享的OBS桶目录有读/写权限。 确认信息无误后,单击“立即创建”,创建文件共享。
  • 端口要求 为了保障数据安全、防止来自公网的NFS连接,建议运行 云存储 网关的服务器的端口配置如表2。 表2 端口使用说明 端口 协议 使用说明 22端口 TCP 使用端口通过SSH协议访问CSG管理控制台主机,对用户内部网络内服务器选择性开放。 123端口 UDP NTP客户端地址用于提供时间同步服务。 7443端口 TCP CSG初始配置Web服务端口,通过认证访问密钥(AK/SK)使用端口激活网关,对执行激活网关CSG管理控制台服务器开放。 111,20048端口 TCP/UDP 使用端口连接文件共享,对挂载NFS文件共享的客户端开放。 2049,2051,2052端口 TCP 使用端口连接文件共享,对挂载NFS文件共享的客户端开放。 10000-11023端口 TCP NFS文件锁服务端口,当多客户端文件锁时触发。
  • 组网要求 客户端可以使用NFS协议通过公网挂载并访问,但是NFS协议传输未加密,出于安全考虑,不建议将本地客户端与云存储网关通过公网互联。推荐用户数据中心网关组网使用以下网络平面: 数据面网络:NFS客户端通过数据面网络将业务数据写入网关。 华为云专线网络:用户本地网关通过云专线(Direct Connect,DC)连接API网关和OBS,接收网关控制台配置命令和上报网关状态、监控数据到控制台,以及业务数据上传到OBS。 云专线需能连接到用户本地网关,并能连接到华为云 对象存储服务 、云解析服务和API网关服务的网络。 管理面网络:通过管理网络连接网关和配置网关。 NAS存储网络(有条件必选):当外接NAS作为网关缓存时,网关通过该网络将数据写到NAS存储。
  • 在线测试模板操作步骤 点击“执行测试”按钮; 执行测试时,根据商家的模板,开通云资源时会产生一定费用(部署时可查看费用明细),测试完成后,请及时删除已开通的资源,避免产生持续扣费。 进入 RFS 控制台,创建资源栈选择“已有模板”,模板来源选择“URL”; 进入“配置参数”页面,按照页面提示填写配置参数后进入下一页; 进入“资源栈设置”页面,完成资源栈设置; 确认配置参数和资源栈设置无误后,点击创建执行计划; 查看费用明细,如下图所示,此处商家需要确保模板中包含的云资源都能正常询出价格,如果不能正常询出价格,可参考:预估执行计划价格; 如费用明细无误,单击部署后,等待资源部署成功; 部署成功后,即华为云 资源编排 服务RFS完成了应用软件自动部署模板的开发。 本示例创建的云资源需要商家支付相应的费用,当商家不需要这些资源的时候,请删除资源栈并及时删除这些资源。
  • 版本生命周期 分布式消息服务RocketMQ版的版本生命周期如表1所示。 表1 版本生命周期 消息引擎类型 版本名称 状态 商用发布时间 EOM时间 EOS时间 RocketMQ 4.8.0 在售 2021年7月 2025年6月 2026年7月 5.x 在售 2024年1月 暂无计划 暂无计划 EOM:End of Marketing,停止该版本的销售。 EOS:End of Service & support,停止该版本的服务,建议您在执行作业时选择最新版本的引擎。在该日期之后,不再提供该软件版本的任何技术服务支持。
  • 修复声明 为了防止客户遭遇不当风险,除漏洞背景信息、漏洞详情、漏洞原理分析、影响范围/版本/场景、解决方案以及参考信息等内容外,分布式消息服务RocketMQ版不提供有关漏洞细节的其他信息。 此外,分布式消息服务RocketMQ版为所有客户提供相同的信息,以平等地保护所有客户。分布式消息服务RocketMQ版不会向个别客户提供事先通知。 最后,分布式消息服务RocketMQ版不会针对产品中的漏洞开发或发布可利用的入侵代码(或“验证性代码”)。
  • DLI 中Delta的使用限制 仅Spark 3.3.1(3.0.0)及以上版本支持Delta。 DLI支持的Delta版本是Delta 2.3.0。 Spark 3.3.1(3.0.0)版本的SQL仍有部分不支持Delta表的相关开源语法,具体内容请参考表1。 表1 Spark 3.3.1-3.0.0版本SQL不支持的Delta表相关开源语法 不支持的语法 示例 ALTER TABLE REPLACE COLUMNS替换列 alter table table0 replace columns(id1 int,name1 string); SHOW CREATE TABLE显示建表语句 show create table table1; INSERT INTO/OVERWRITE指定静态分区插入表 insert into table1 partition(part='part1') select * from table2; ALTER TABLE ADD/DROP PARTITION管理分区 alter table test_delta_parts1 add partition('2024-10-28'); CONVERT TO DELTA语法暂不支持parquet.`tablePath`格式的表 convert to delta parquet.`obs://bucket0/db0/table0`;
  • 系统响应 返回表的历史操作记录,结果指标代表含义见下表。 表1 结果指标说明 指标名称 指标含义 version 对表操作的版本号 timestamp 当前版本操作的时间戳 userId 当前版本操作的用户id userName 当前版本操作的用户名 operation 操作名称(WRITE|CREATE TABLE|UPDATE|DELETE|MERGE|RESTORE等) operationParameters 操作参数 job 运行该操作的作业的详细信息 notebook 运行操作的笔记的详细信息 clusterId 集群id readVersion 为执行写操作而读取的表的版本 isolationLevel 隔离级别 isBlindAppend 是否追加数据 operationMetrics 操作的度量(例如,修改的文件数、行数、字节数等信息) engineInfo Spark和Delta版本信息
  • 注意事项 如果您的表已经在所需的协议版本上,需要先执行如下语句才能修改成功: ALTER TABLE table_name SET TBLPROPERTIES ('delta.columnMapping.mode' = 'name'); 如果您的表不在所需的协议版本上,需要先执行如下语句才能修改成功: ALTER TABLE table_name SET TBLPROPERTIES ('delta.columnMapping.mode' = 'name','delta.minReaderVersion' = '2','delta.minWriterVersion' = '5')
  • 参数描述 表1 参数描述 参数 描述 database_name Database名称,由字母、数字和下划线(_)组成。 table_name Database中的表名,由字母、数字和下划线(_)组成。 obs_path Obs路径,表示Delta表的存储位置。 timestamp_expression 时间戳,不能晚于当前时间,格式'yyyy-MM-ddTHH:mm:ss.SSS' version_code 1.3.1中查询结果中的版本号
  • 命令格式 CREATE[ OR REPLACE] TABLE [ IF NOT EXISTS] [database_name.]table_name|DELTA.`obs://bucket_name/tbl_path` USING DELTA [ COMMENT table_comment ] [ PARTITIONED BY (partColumnList) ] [ LOCATION location_path] [ AS query_statement ]
  • 参数描述 表1 CREATE TABLE AS SELECT参数描述 参数 描述 database_name Database名称,由字母、数字和下划线(_)组成。 table_name Database中的表名,由字母、数字和下划线(_)组成。 bucket_name obs桶名称。 tbl_path Delta表在obs桶中的存储位置。 using 参数delta,定义和创建Delta table table_comment 表的描述信息。 location_path Delta表的存储位置,当前版本通过表名创建Delta表时必须指定,且只支持obs路径,指定该路径Delta 表会创建为外表。 query_statement select查询表达式
  • 示例 创建分区表 create table if not exists delta_table0using deltapartitioned by (dt)location 'obs://bucket_name0/db0/delta_table0'asselect 1 as id, 'a1' as name, 10 as price, 1000 as dt; 创建非分区表 create table if not exists delta_table0using deltalocation 'obs://bucket_name0/db0/delta_table0'asselect 1 as id, 'a1' as name, 10 as price;create table delta.`obs://bucket_name0/db0/delta_table0`using deltapartitioned by (part_col1, part_col2)as select id,name,year,class_name from table1 where part_col1=2024;
  • 命令格式 还原Delta表到历史某一时刻的状态: RESTORE [TABLE] [database_name.]table_name|DELTA.`obs_path` [TO] TIMESTAMP AS OF timestamp_expression 还原Delta表到某一历史版本的状态: RESTORE [TABLE] [database_name.]table_name|DELTA.`obs_path` [TO] VERSION AS OF version_code
  • 执行vacuum报错DLI.0001: IllegalArgumentException: requirement failed: Are you sure you would like to vacuum files with such a low retention period? 根因分析:RETAIN 保留期过短(少于168小时),需要确认是否能清理该时间前的数据,将无法再回头查看在指定数据保留期之前创建的版本。确认清理可在console页面设置中添加参数spark.databricks.delta.retentionDurationCheck.enabled值为false。
  • 执行sql报错DLI.0005: There should be at least one partition pruning predicate on partitioned table `777dd`.`test_delta_parts1` 解决方案:在console页面设置中添加参数spark.sql.forcePartitionPredicatesOnPartitionedTable.enabled值为false。
  • 执行rename/drop column报错DLI.0005: DeltaAnalysisException: Column rename is not supported for your Delta table... 解决方案:先执行如下语句,再执行rename。 ALTER TABLE delta_perms1 SET TBLPROPERTIES ( 'delta.columnMapping.mode' = 'name', 'delta.minReaderVersion' = '2', 'delta.minWriterVersion' = '5');
  • 命令格式 通过表名创建Delta表 CREATE[ OR REPLACE] TABLE [ IF NOT EXISTS] [database_name.]table_name [ (columnTypeList)] USING DELTA [ COMMENT table_comment ] [ PARTITIONED BY (partColumnList) ] LOCATION location_path 通过delta.`Obs路径`创建Delta表 CREATE[ OR REPLACE] TABLE [ IF NOT EXISTS] DELTA.`obs://bucket_name/tbl_path` [ (columnTypeList)] USING DELTA [ COMMENT table_comment ] [ PARTITIONED BY (partColumnList) ] 通过表名创建,能通过show tables查到该表,当前版本必须制定location,且只能指定为obs路径;通过delta.`Obs路径`创建,不能通过show tables查到。
  • 执行insert into/overwrite table_name partition(part_key='part_value') select ...报错DLI.0005: DeltaAnalysisException: Partition column `dt` not found in schema [id, name] 根因分析:不支持insert into/overwrite table_name partition(part_key='part_value')语法。
  • 参数描述 表1 CREATE TABLE参数描述 参数 描述 database_name Database名称,由字母、数字和下划线(_)组成。 table_name Database中的表名,由字母、数字和下划线(_)组成。 bucket_name obs桶名称。 tbl_path Delta表在obs桶中的存储位置。 columnTypeList 以逗号分隔的带数据类型的列表。列名由字母、数字和下划线(_)组成。 using 参数delta,定义和创建Delta table。 table_comment 表的描述信息。 partColumnList 分区字段列表,列名取自columnTypeList中的列名。 location_path Delta表的存储位置,当前版本必须指定,且只支持obs路径,指定该路径Delta 表会创建为外表。
  • 参数描述 表1 ADD COLUMNS参数描述 参数 描述 tableName 表名。 col_spec 可由[col_name][col_type][nullable][comment]四部分组成。 col_name:新增列名,必须指定。 暂不支持给嵌套列添加新的子列 col_type:新增列类型,必须指定。 nullable:新增列是否可以为空,可以缺省。 comment:新增列comment,可以缺省。
  • 参数描述 表1 SHALLOW CLONE参数描述 参数 描述 target_db 目标Database名称,由字母、数字和下划线(_)组成。 target_table 目标表名,由字母、数字和下划线(_)组成。 source_db 源Database名称,由字母、数字和下划线(_)组成。 source_table 源表名,由字母、数字和下划线(_)组成。 bucket_name obs桶名称。 tbl_path Delta表在obs桶中的存储位置。 constraint_name 约束名称。 boolExpression 约束条件表达式。
  • 示例 CREATE OR REPLACE TABLE delta_table1 SHALLOW CLONE delta_table0 LOCATION 'obs://bucket0/db0/delta_table1';CREATE TABLE delta.`obs://bucket0/db0/delta_table1` SHALLOW CLONE delta_table0 VERSION AS OF 10;
  • 参数描述 表1 MERGE INTO参数 参数 描述 database_name Database名称,由字母、数字和下划线(_)组成。 table_name Database中的表名,由字母、数字和下划线(_)组成。 bucket_name obs桶名称。 tbl_path Delta表在obs桶中的存储位置。 target_alias 目标表的别名。 sub_query 子查询。 source_alias 源表或源表达式的别名。 merge_condition 将源表或表达式和目标表关联起来的条件 condition 过滤条件,可选。 matched_action 当满足条件时进行Delete或Update操作 not_matched_action 当不满足条件时进行Insert操作
  • 示例 部分字段更新 create table h0(id int, comb int, name string, price int) using delta location 'obs://bucket_name0/db0/h0';create table s0(id int, comb int, name string, price int) using delta location 'obs://bucket_name0/db0/s0';insert into h0 values(1, 1, 'h1', 1);insert into s0 values(1, 1, 's1', 1),(2, 2, 's2', 2);//写法1merge into h0 using s0on h0.id = s0.idwhen matched then update set h0.id = s0.id, h0.comb = s0.comb, price = s0.price * 2;//写法2merge into h0 using s0on h0.id = s0.idwhen matched then update set id = s0.id,name = s0.name,comb = s0.comb + h0.comb,price = s0.price + h0.price; 缺省字段更新和插入 create table h0(id int, comb int, name string, price int, flag boolean) using delta location 'obs://bucket_name0/db0/h0';create table s0(id int, comb int, name string, price int, flag boolean) using delta location 'obs://bucket_name0/db0/s0';insert into h0 values(1, 1, 'h1', 1, false);insert into s0 values(1, 2, 's1', 1, true);insert into s0 values(2, 2, 's2', 2, false);merge into h0 as targetusing (select id, comb, name, price, flag from s0) sourceon target.id = source.idwhen matched then update set *when not matched then insert *; 多条件更新和删除 create table h0(id int, comb int, name string, price int, flag boolean) using delta location 'obs://bucket_name0/db0/h0';create table s0(id int, comb int, name string, price int, flag boolean) using delta location 'obs://bucket_name0/db0/s0';insert into h0 values(1, 1, 'h1', 1, false);insert into h0 values(2, 2, 'h2', 1, false);insert into s0 values(1, 1, 's1', 1, true);insert into s0 values(2, 2, 's2', 2, false);insert into s0 values(3, 3, 's3', 3, false);merge into h0using (select id, comb, name, price, flag from s0) sourceon h0.id = source.idwhen matched and h0.flag = false then update set id = source.id, comb = h0.comb + source.comb, price = source.price * 2when matched and h0.flag = true then deletewhen not matched then insert *;
  • 示例 insert into delta_table0 values(1, 'a1', 20);insert into delta_table0 select 1, 'a1', 20;insert into test_delta_parts1 PARTITION(dt) select id,name,dt from test_delta1;-- insert overwrite tableinsert overwrite table delta_table0 select 1, 'a1', 20;
  • 参数描述 表1 UPDATE参数 参数 描述 database_name Database名称,由字母、数字和下划线(_)组成。 table_name Database中的表名,由字母、数字和下划线(_)组成。 bucket_name obs桶名称。 tbl_path Delta表在obs桶中的存储位置。 column 待更新的目标列。 EXPRESSION 需在目标表中更新的源表列值的表达式。 boolExpression 过滤条件表达式。
  • 注意事项 RETAIN num HOURS表示保留期阈值,建议设置为至少 7 天。 如果对 Delta 表运行VACUUM,则将无法再回头查看在指定数据保留期之前创建的版本。 Delta Lake 具有一项安全检查,用于防止运行危险的VACUUM命令,当指定保留期阈值少于168小时时会报错限制该操作。 如果确定指定保留期阈值进行vacuum操作,可通过将 Spark 配置属性 spark.databricks.delta.retentionDurationCheck.enabled 设置为 false 来关闭此安全检查。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全