华为云用户手册

  • 约束与限制 仅支持1.19及以上版本的集群创建。 使用HPA需要安装能够提供Metrics API的插件,您可根据集群版本和实际需求选择其中之一: metrics-server:提供基础资源使用指标,例如容器CPU和内存使用率。所有集群版本均可安装。 kube-prometheus-stack:除基础资源指标外,还支持提供自定义指标。需将Prometheus注册为Metrics API的服务,详见通过Metrics API提供资源指标。该插件支持v1.19及以后的集群版本。 只有CCE集群可以直接安装kube-prometheus-stack插件,并且选择Server模式。 Server模式:本地存储数据,占用资源较多,支持自定义指标能力。 在通过Metrics API创建资源指标时,需要删除"release: cceaddon-prometheus"。
  • YAML编辑基于组合条件的分流 当前数据选择YAML,在编辑栏进行编辑。YAML设置示例如下(根据实际需求调整配置参数): apiVersion: v1 kind: VirtualService metadata: name: reviews-route spec: hosts: - reviews.prod.svc.cluster.local http: - route: - destination: host: reviews.prod.svc.cluster.local subset: v2 weight: 25 - destination: host: reviews.prod.svc.cluster.local subset: v1 weight: 75 - match: - headers: end-user: exact: jason uri: prefix: "/ratings/v2/" route: - destination: host: ratings.prod.svc.cluster.local
  • 数据规划 在AWS基础设施上构建多云集群时,将自动在AWS控制台创建以下资源,请确保资源配额足够: 表1 资源数量 资源类型 EC2 NAT VPC 子网 路由表 互联网网关 弹性IP 安全组 网络ACL ELB 网络接口 存储卷 数量 3台 3个 1个 6个 7个 1个 3个 5个 1个 1个 4个 6块 表2 EC2资源规格 节点类型 数量 CPU (Cores) Mem (GiB) root盘 非root盘 备注 集群管理节点 3 8 32 100 200 t3.2xlarge型号 集群计算节点 按需 8 32 100 200 数量按需可扩展 表3 IAM权限 权限类型 权限名称 IAMRole AWSIAMRoleNodes、AWSIAMRoleControlPlane、AWSIAMRoleControllers IAMInstanceProfile AWSIAMInstanceProfileNodes、AWSIAMInstanceProfileControlPlane、AWSIAMInstanceProfileControllers IAMManagedPolicy AWSIAMManagedPolicyCloudProviderNodes、AWSIAMManagedPolicyCloudProviderControlPlane、AWSIAMManagedPolicyControllers 父主题: 多云集群
  • YAML编辑基于权重的分流 当前数据选择YAML,在编辑栏进行编辑。YAML设置示例如下(根据实际需求调整配置参数): apiVersion: v1 kind: VirtualService metadata: name: reviews-route spec: hosts: - reviews.prod.svc.cluster.local http: - route: - destination: host: reviews.prod.svc.cluster.local subset: v2 weight: 25 # 设置权重 - destination: host: reviews.prod.svc.cluster.local subset: v1 weight: 75 # 设置权重
  • YAML编辑基于条件的分流 当前数据选择YAML,在编辑栏进行编辑。YAML设置示例如下(根据实际需求调整配置参数): apiVersion: v1 kind: VirtualService metadata: name: ratings-route spec: hosts: - ratings.prod.svc.cluster.local http: - match: - headers: end-user: exact: jason uri: prefix: "/ratings/v2/" route: - destination: host: ratings.prod.svc.cluster.local
  • 查看集群控制面组件日志 通过控制台查看目标集群控制面组件日志 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 选择“控制面组件日志”页签,在控制面日志中选中需要查看的日志主题,支持的控制面组件日志请参见集群控制面组件说明。关于该页面的操作详情,请参见LTS用户指南。 通过LTS控制台查看目标集群控制面组件日志 登录LTS控制台,选择“日志管理”页面。 通过集群ID查到对应的日志组,单击该日志组名称,查看日志流,详情请参见LTS用户指南。
  • 开启华为云集群控制面日志 创建集群时开启 登录云容器引擎(CCE)控制台。 在控制台上方导航栏,选择集群,单击“购买”。 在“插件选择”页面中,勾选“云原生日志采集” 在“插件配置”页面中,“云原生日志采集插件”选择“自定义安装”,点击“控制面组件日志”开启采集。 采集容器标准输出:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到云日志服务(LTS)。 采集Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)。 配置完成后,单击右下角“规格确认”,在弹出的窗口中单击“确定”,完成创建。
  • 开启本地集群控制面日志 集群未安装云原生日志采集插件 安装云原生日志采集插件时,可通过勾选对应控制面组件,创建默认日志采集策略,采集对应组件日志上报到LTS。安装方法见:启用云原生日志采集插件采集日志。 集群已安装云原生日志采集插件 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若安装插件时未开启控制面组件的采集策略,或者删除了对应的日志策略,可通过该方式重新创建对应组件采集策略。 日志查看:可直接在“日志中心”页面,“控制面组件日志”页签中查看,选择日志策略配置的日志流名称,即可查看上报到云日志服务(LTS)的日志。
  • asm-iam-authenticator使用参考 asm-iam-authenticator作为k8s client端的认证插件,主要提供了generate-kubeconfig和token两个子命令。 A tool to authenticate to ASM using HuaweiCloud IAM credentials Usage: asm-iam-authenticator [command] Available Commands: completion Generate the autocompletion script for the specified shell generate-kubeconfig Generate or modify kubeconfig files based on user configuration help Help about any command token Authenticate using HuaweiCloud IAM and get token for ASM Flags: --alsologtostderr log to standard error as well as files (no effect when -logtostderr=true) -h, --help help for asm-iam-authenticator --log_dir string If non-empty, write log files in this directory (no effect when -logtostderr=true) --log_file string If non-empty, use this log file (no effect when -logtostderr=true) --logtostderr log to standard error instead of files (default true) -v, --v Level number for the log level verbosity --version version for asm-iam-authenticator Use "asm-iam-authenticator [command] --help" for more information about a command. 其中,Flags主要为日志选项。 token token子命令用于获取用户token,获取token的认证方式有用户名/密码、ak/sk两种,选择其中一种即可。 Authenticate using HuaweiCloud IAM and get token for ASM Usage: asm-iam-authenticator token [flags] Flags: --ak string IAM access key ID --aksk-dir string The directory of IAM access key(AK) and secret access key(SK) --cache Cache the token credential on disk until it expires (default true) --domain-name string IAM domain name, typically your account name -h, --help help for token --iam-endpoint string HuaweiCloud IAM endpoint, i.e. https://iam.cn-north-4.myhuaweicloud.com (default "https://iam.myhuaweicloud.com") --insecure-skip-tls-verify If true, the iam server's certificate will not be checked for validity. (default true) --password string IAM user password --project-id string IAM project id, project id and project name should not be empty at same time --project-name string IAM project name, project id and project name should not be empty at same time --sk string IAM secret access key --token-expired-refresh Whether refresh the cached token when it may have expired resulting unauthorized. If true, we will use client.authentication.k8s.io/v1alpha1 api version. Otherwise, use client.authentication.k8s.io/v1beta1 --token-only Return token only for other tool integration --user-name string IAM user name. Same as domain-name when using main account, otherwise use iam user name 其中,Flags分为用户名密码、AKSK和公共配置。 表1 用户名/密码配置 Command Flag Environment Value Description domain-name DOMAIN_NAME 租户名,即账号名,详情请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0001.html。 user-name USER_NAME 子用户名,即IAM用户名。若不配置与domain-name一致。 详情请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0001.html。 password PASSWORD 用户或子用户密码。 表2 AK/SK配置 Command Flag Environment Value Description ak ACCESS_KEY_ID ak、sk的获取方法请参见获取AK/SK,ak为文件中Access Key部分,sk为文件中Secret Key部分。 sk SECRET_ACCESS_KEY 表3 公共配置 Command Flag Environment Value Description iam-endpoint IAM_ENDPOINT IAM的Endpoint,必须配置,详情请参见https://developer.huaweicloud.com/endpoint?IAM。 project-name PROJECT_NAME 项目名,详情请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0001.html。 project-id PROJECT_ID 项目ID,详情请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0001.html。 insecure-skip-tls-verify INSECURE_SKIP_TLS_VERIFY 是否跳过对CCI/IAM服务端的校验,默认为true。 cache CREDENTIAL_CACHE 是否开启将IAM Token缓存到本地,提高访问性能,默认为true。 注意: 在非安全环境,建议关闭此选项。 generate-kubeconfig 为用户直接生成KubeConfig配置,若指定的KubeConfig已存在,则会注入新的server、user、context配置,并将当前的KubeConfig context切换到此次配置的结果。 Generate or modify kubeconfig files based on user configuration. Sets a cluster entry, a user entry and a context entry in kubeconfig and use this context as the current-context. The loading order follows these rules: 1. If the --kubeconfig flag is set, then only that file is loaded. The flag may only be set once and no merging takes place. 2. If $KUBECONFIG environment variable is set, then it is used as a list of paths (normal path delimiting rules for your system). These paths are merged. When a value is modified, it is modified in the file that defines the stanza. When a value is created, it is created in the first file that exists. If no files in the chain exist, then it creates the last file in the list. 3. Otherwise, ${HOME}/.kube/config is used and no merging takes place. Examples: # Generate kubeconfig to ${HOME}/.kube/config using aksk asm-iam-authenticator generate-kubeconfig --mesh-endpoint=https://127.0.0.1:5443 --ak=*** --sk=*** # Generate kubeconfig to ${HOME}/.kube/config using domain name and password asm-iam-authenticator generate-kubeconfig --mesh-endpoint=https://127.0.0.1:5443 --domain-name=*** --password=*** Usage: asm-iam-authenticator generate-kubeconfig [flags] Flags: --ak string IAM access key ID --aksk-dir string The directory of IAM access key(AK) and secret access key(SK) --cache Cache the token credential on disk until it expires (default true) --domain-name string IAM domain name, typically your account name -h, --help help for generate-kubeconfig --iam-endpoint string HuaweiCloud IAM endpoint, i.e. https://iam.cn-north-4.myhuaweicloud.com (default "https://iam.myhuaweicloud.com") --insecure-skip-tls-verify If true, the iam server's certificate will not be checked for validity. (default true) --kubeconfig string use a particular kubeconfig file --mesh-endpoint string Mesh server endpoint, i.e. https://127.0.0.1:5443 --mesh-region string Mesh region, i.e. cn-north-4 --password string IAM user password --project-id string IAM project id, project id and project name should not be empty at same time --project-name string IAM project name, project id and project name should not be empty at same time --sk string IAM secret access key --token-expired-refresh Whether refresh the cached token when it may have expired resulting unauthorized. If true, we will use client.authentication.k8s.io/v1alpha1 api version. Otherwise, use client.authentication.k8s.io/v1beta1 --token-only Return token only for other tool integration --user-name string IAM user name. Same as domain-name when using main account, otherwise use iam user name --validation Validate kubeconfig by trying to access Mesh with existing config (default true) 父主题: 使用kubectl连接网格控制面
  • rb_xor_cardinality_agg(roaringbitmap) 描述:将分组内的roaringbitmap按照异或的逻辑合并后的基数。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT a, rb_xor_cardinality_agg(b) FROM r1 GROUP BY a ORDER BY 1; a | rb_xor_cardinality_agg ----+------------------------ 1 | 0 2 | 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 | 1 10 | 1 (10 rows)
  • rb_or_cardinality_agg(roaringbitmap) 描述:将分组内的roaringbitmap按照并集计算后的基数。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT a, rb_or_cardinality_agg(b) FROM r1 GROUP BY a ORDER BY 1; a | rb_or_cardinality_agg ----+----------------------- 1 | 1 2 | 2 3 | 2 4 | 2 5 | 2 6 | 2 7 | 2 8 | 2 9 | 2 10 | 2 (10 rows)
  • rb_and_cardinality_agg(roaringbitmap) 描述:分组内的roaringbitmap按照交集计算后的基数。 返回值类型:int 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT a, rb_and_cardinality_agg(b) FROM r1 GROUP BY a ORDER BY 1; a | rb_and_cardinality_agg ----+------------------------ 1 | 1 2 | 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 | 1 10 | 1 (10 rows)
  • rb_and_agg(roaringbitmap) 描述:将分组内的roaringbitmap数据按照交的操作聚合成一个roaringbitmap集合。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 CREATE TABLE r1(a int ,b roaringbitmap); INSERT INTO r1 SELECT a, rb_build_agg(b) FROM t1 GROUP BY a; INSERT INTO t1 SELECT generate_series(1,10),generate_series(1,20,4); INSERT INTO r1 SELECT a, rb_build_agg(b) FROM t1 GROUP BY a; SELECT a, rb_to_array(rb_and_agg(b)) FROM r1 GROUP BY a ORDER BY a; a | rb_to_array ----+------------- 1 | {1} 2 | {3} 3 | {5} 4 | {7} 5 | {9} 6 | {11} 7 | {13} 8 | {15} 9 | {17} 10 | {19} (10 rows)
  • rb_or_agg(roaringbitmap) 描述:将分组内的roaringbitmap按照并的逻辑组合成一个roaringbitmap。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT a, rb_to_array(rb_or_agg(b)) FROM r1 GROUP BY a ORDER BY a; a | rb_to_array ----+------------- 1 | {1} 2 | {3,5} 3 | {5,9} 4 | {7,13} 5 | {9,17} 6 | {1,11} 7 | {5,13} 8 | {9,15} 9 | {13,17} 10 | {17,19} (10 rows)
  • rb_build_agg(int) 描述:将分组内的int值聚合成一个roaringbitmap值。 返回值类型:roaringbitmap 示例: 1 2 3 4 5 6 CREATE TABLE t1 (a int ,b int); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using round-robin as the distribution mode by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE INSERT INTO t1 SELECT generate_series(1,10),generate_series(1,20,2); INSERT 0 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT rb_iterate(rb_build_agg(b)) FROM t1; rb_iterate ------------ 1 3 5 7 9 11 13 15 17 19 (10 rows)
  • rb_xor_agg(roaringbitmap) 描述:将分组内的roaringbitmap按照异或的逻辑组合成一个roaringbitmap。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT a, rb_to_array(rb_xor_agg(b)) FROM r1 GROUP BY a ORDER BY a; a | rb_to_array ----+------------- 1 | {} 2 | {5} 3 | {9} 4 | {13} 5 | {17} 6 | {1} 7 | {5} 8 | {9} 9 | {13} 10 | {17} (10 rows)
  • POSIX正则表达式 正则表达式是一个字符序列,它是定义一个串集合 (一个正则集)的缩写。 如果一个串是正则表达式描述的正则集中的一员时, 那么就说这个串匹配该正则表达式。 POSIX正则表达式提供了比LIKE和SIMILAR TO操作符更强大的含义。表2列出了所有可用于POSIX正则表达式模式匹配的操作符。 表2 正则表达式匹配操作符 操作符 描述 例子 ~ 匹配正则表达式,大小写敏感 'thomas' ~ '.*thomas.*' ~* 匹配正则表达式,大小写不敏感 'thomas' ~* '.*Thomas.*' !~ 不匹配正则表达式,大小写敏感 'thomas' !~ '.*Thomas.*' !~* 不匹配正则表达式,大小写不敏感 'thomas' !~* '.*vadim.*' 匹配规则 与LIKE不同,正则表达式允许匹配串里的任何位置,除非该正则表达式显式地挂接在串的开头或者结尾。 除了上文提到的元字符外, POSIX正则表达式还支持下表的模式匹配元字符。 表3 模式匹配元字符 元字符 含义 ^ 表示串开头的匹配。 $ 表示串末尾的匹配。 . 匹配任意单个字符。 正则表达式函数 POSIX正则表达式支持下面函数。 substring(string from pattern)函数提供了抽取一个匹配POSIX正则表达式模式的子串的方法。 regexp_replace(string, pattern, replacement [,flags ])函数提供了将匹配POSIX正则表达式模式的子串替换为新文本的功能。 regexp_matches(string text, pattern text [, flags text])函数返回一个文本数组,该数组由匹配一个POSIX正则表达式模式得到的所有被捕获子串构成。 regexp_split_to_table(string text, pattern text [, flags text])函数把一个POSIX正则表达式模式当作一个定界符来分离一个串。 regexp_split_to_array(string text, pattern text [, flags text ])和regexp_split_to_table类似,是一个正则表达式分离函数,不过它的结果以一个text数组的形式返回。 正则表达式分离函数会忽略零长度的匹配,这种匹配发生在串的开头或结尾或者正好发生在前一个匹配之后。这和正则表达式匹配的严格定义是相悖的,后者由regexp_matches实现,但是通常前者是实际中最常用的行为。 示例 1 2 3 4 5 SELECT 'abc' ~ 'Abc' AS RESULT; result -------- f (1 row) 1 2 3 4 5 SELECT 'abc' ~* 'Abc' AS RESULT; result -------- t (1 row) 1 2 3 4 5 SELECT 'abc' !~ 'Abc' AS RESULT; result -------- t (1 row) 1 2 3 4 5 SELECT 'abc'!~* 'Abc' AS RESULT; result -------- f (1 row) 1 2 3 4 5 SELECT 'abc' ~ '^a' AS RESULT; result -------- t (1 row) 1 2 3 4 5 SELECT 'abc' ~ '(b|d)'AS RESULT; result -------- t (1 row) 1 2 3 4 5 SELECT 'abc' ~ '^(b|c)'AS RESULT; result -------- f (1 row) 虽然大部分的正则表达式搜索都能很快地执行,但是正则表达式仍可能被人为地控制,通过任意长的时间和任意量的内存进行处理。不建议从非安全模式来源接受正则表达式搜索模式,如果必须这样做,建议加上语句超时限制。使用SIMILAR TO模式的搜索具有同样的安全性危险, 因为SIMILAR TO提供了很多和POSIX-风格正则表达式相同的能力。LIKE搜索比其他两种选项简单得多,因此在接受非安全模式来源搜索时要更安全些。
  • LIKE 判断字符串是否能匹配上LIKE后的模式字符串。如果字符串与提供的模式匹配,则LIKE表达式返回为真(NOT LIKE表达式返回假),否则返回为假(NOT LIKE表达式返回真)。 匹配规则 此操作符只有在它的模式匹配整个串的时候才能成功。如果要匹配在串内任何位置的序列,该模式必须以百分号开头和结尾。 下划线 (_)代表(匹配)任何单个字符; 百分号(%)代表任意串的通配符。 要匹配文本里的下划线(_)或者百分号(%),在提供的模式里相应字符必须前导逃逸字符。逃逸字符的作用是禁用元字符的特殊含义,缺省的逃逸字符是反斜线,也可以用ESCAPE子句指定一个不同的逃逸字符。 要匹配逃逸字符本身,需写两个逃逸字符。例如要写一个包含反斜线的模式常量,那就要在SQL语句里写两个反斜线。 参数standard_conforming_strings设置为off时,在文串常量中写的任何反斜线都需要被双写。因此写一个匹配单个反斜线的模式实际上要在语句里写四个反斜线。可通过用ESCAPE选择一个不同的逃逸字符来避免这种情况,这样反斜线就不再是LIKE的特殊字符了。但仍然是字符文本分析器的特殊字符,所以还是需要两个反斜线。也可通过写ESCAPE ''的方式不选择逃逸字符,这样可以有效地禁用逃逸机制,但是没有办法关闭下划线和百分号在模式中的特殊含义。 关键字ILIKE可以用于替换LIKE,区别是LIKE大小写敏感,ILIKE大小写不敏感。 操作符~~等效于LIKE,操作符~~*等效于ILIKE。 示例 1 2 3 4 5 SELECT 'abc' LIKE 'abc' AS RESULT; result ----------- t (1 row) 1 2 3 4 5 SELECT 'abc' LIKE 'a%' AS RESULT; result ----------- t (1 row) 1 2 3 4 5 SELECT 'abc' LIKE '_b_' AS RESULT; result ----------- t (1 row) 1 2 3 4 5 SELECT 'abc' LIKE 'c' AS RESULT; result ----------- f (1 row)
  • SIMILAR TO SIMILAR TO操作符根据自己的模式判断是否匹配给定串而返回真或者假。它和LIKE非常类似,只不过它使用SQL标准定义的正则表达式理解模式。 匹配规则 和LIKE一样,SIMILAR TO操作符只有在它的模式匹配整个串的时候才返回真。如果要匹配在串内任何位置的序列,该模式必须以百分号开头和结尾。 下划线 (_)代表(匹配)任何单个字符; 百分号(%)代表任意串的通配符。 SIMILAR TO也支持下面这些从POSIX正则表达式借用的模式匹配元字符。 表1 模式匹配元字符 元字符 含义 | 表示选择(两个候选之一)。 * 表示重复前面的项零次或更多次。 + 表示重复前面的项一次或更多次。 ? 表示重复前面的项零次或一次。 {m} 表示重复前面的项刚好m次。 {m,} 表示重复前面的项m次或更多次。 {m,n} 表示重复前面的项至少m次并且不超过n次。 () 把多个项组合成一个逻辑项。 [...] 声明一个字符类,就像POSIX正则表达式一样。 前导逃逸字符可以禁止所有这些元字符的特殊含义。逃逸字符的使用规则和LIKE一样。 注意事项 如果SIMILAR TO正则表达式重复匹配字符数量非常庞大,由于受递归大小限制,执行语句会失败并报错invalid regular expression: regular expression is too complex,可尝试调大GUC参数max_stack_depth。 正则表达式函数 支持使用函数substring(string from pattern for escape)截取匹配SQL正则表达式的子字符串。 示例 1 2 3 4 5 SELECT 'abc' SIMILAR TO 'abc' AS RESULT; result ----------- t (1 row) 1 2 3 4 5 SELECT 'abc' SIMILAR TO 'a' AS RESULT; result ----------- f (1 row) 1 2 3 4 5 SELECT 'abc' SIMILAR TO '%(b|d)%' AS RESULT; result ----------- t (1 row) 1 2 3 4 5 SELECT 'abc' SIMILAR TO '(b|c)%' AS RESULT; result ----------- f (1 row)
  • && 描述:两个roaringbitmap如果有交集返回true,否则返回false。 返回值类型:bool 示例: 1 2 3 4 5 6 7 8 9 10 SELECT rb_build('{2,3,4}') && rb_build('{2,3}'); ?column? ---------- t (1 row) SELECT rb_build('{2,3,4}') && rb_build('{7,8,9}'); ?column? ---------- f (1 row)
  • = 描述:比较两个roaringbitmap是否相等。 返回值类型:bool 示例: 1 2 3 4 5 6 7 8 9 10 SELECT rb_build('{1,2,3}') = rb_build('{1,2,3}'); ?column? ---------- t (1 row) SELECT rb_build('{2,3}') = rb_build('{1,2,3}'); ?column? ---------- f (1 row)
  • UUID格式 UUID由开放软件基金会标准化,作为分布式计算环境的一部分,在互联网工程任务组(IETF)公布的RFC 4122标准中对UUID进行了标准化。标准的UUID由36个字符组成,其中包括32个16进制数字和4个连字符‘-’,形式为8-4-4-4-12,标准的UUID示例如下: 1 a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 除了标准型的UUID,GaussDB(DWS)同样支持以其他方式输入:大写字母和数字、由花括号包围的标准格式、省略部分或所有连字符、在任意一组四位数字之后加一个连字符。示例: 1 2 3 4 A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11 {a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11} a0eebc999c0b4ef8bb6d6bb9bd380a11 a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
  • 背景 目前在互联网、教育、游戏等行业都有实时精准营销的需求。通过系统生成用户画像,在营销时通过条件组合筛选用户,快速提取目标群体。例如: 在电商行业中,商家在进行营销活动前,需要根据活动的目的,圈选一批满足特定特征的目标用户群体进行广告推送。 在教育行业中,需要根据学生不同的特征,推送有针对性的练习题目,帮助学生查漏补缺。 在搜索、视频、门户网站中,根据用户关注的热点,推送不同的内容。 这些业务场景都有一些共同的特点: 数据量庞大,运算量极大。 用户规模庞大,标签多,字段多,占用存储空间也多。 圈选的特征条件多样化,很难找到固定索引,如果每个字段一个索引,存储空间又会暴增。 性能要求高,因为实时营销要求秒级响应。 数据更新时效要求高,用户画像几乎要求实时更新。 针对上述业务场景特点,GaussDB(DWS)的roaringbitmap可以高效生成、压缩、解析位图数据,支持最常见的位图聚合操作(与、或、非、异或),满足用户在亿级以上、千万级标签的大数据量下实时精准营销、快速圈选用户的需求。
  • 响应结果 字段名 描述 Parallel 请求中的-p参数。 Jobs 请求中的-j参数。 Threshold 请求中的-threshold参数。 PartSize 请求中的-ps参数。 Exclude 请求中的-exclude参数。 Include 请求中的-include参数。 TimeRange 请求中的-timeRange参数。 VerifyLength 请求中的-vlength参数。 VerifyMd5 请求中的-vmd5参数。 CheckpointDir 请求中的-cpd参数。 OutputDir 请求中的-o参数。 ArcDir 请求中的-arcDir参数。 Succeed count 成功的任务数。 Failed count 失败的任务数。 Skip count 增量上传/下载/复制、同步上传/下载/复制跳过的任务数。 说明: 跳过的任务数也会记录到成功的任务数中。 Warning count 执行完成但包含警告的任务数。 说明: 产生警告的任务可能是失败的也可能是成功的,需要根据成功或失败的结果清单进一步判断。 产生警告的任务数与成功/失败任务数是相互独立的,总任务数仍是成功的任务数+失败的任务数。 Succeed bytes 上传/下载成功的字节数。 max cost 所有任务中的最长耗时,单位:毫秒。 min cost 所有任务中的最短耗时,单位:毫秒。 average cost 平均耗时,单位:毫秒。 average tps 平均每秒的任务完成个数。 Task id 每次运行的唯一标识号,用于查找批量任务生成的结果清单文件。
  • 命令结构 Windows操作系统 上传文件 obsutil cp file_url obs://bucket[/key] [-arcDir=xxx] [-dryRun] [-link] [-u] [-vlength] [-vmd5] [-p=1] [-threshold=5248800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-o=xxx] [-cpd=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 上传文件夹 obsutil cp folder_url obs://bucket[/key] -r [-arcDir=xxx] [-dryRun] [-link] [-f] [-flat] [-u] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 多文件/文件夹上传 obsutil cp file1_url,folder1_url|filelist_url obs://bucket[/prefix] -msm=1 [-r] [-arcDir=xxx] [-dryRun] [-link] [-f] [-u] [-vlength] [-vmd5] [-flat] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx][-timeRange=time1-time2] [-at] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 命令中的“/prefix”即为上传文件夹时的对象名前缀。运行示例请参见上传示例 Linux/Mac操作系统 上传文件 ./obsutil cp file_url obs://bucket[/key] [-arcDir=xxx] [-dryRun] [-link] [-u] [-vlength] [-vmd5] [-p=1] [-threshold=5248800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-o=xxx] [-cpd=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 上传文件夹 ./obsutil cp folder_url obs://bucket[/key] -r [-arcDir=xxx] [-dryRun] [-link] [-f] [-flat] [-u] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-at] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 多文件/文件夹上传 ./obsutil cp file1_url,folder1_url|filelist_url obs://bucket[/prefix] -msm=1 [-r] [-arcDir=xxx] [-dryRun] [-link] [-f] [-u] [-vlength] [-vmd5] [-flat] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx][-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 命令中的“/prefix”即为上传文件夹时的对象名前缀。运行示例请参见上传示例
  • 参数说明 参数 约束 描述 file_url 多文件/文件夹上传时可选 上传文件时必选 本地文件路径。 说明: 多文件/文件夹上传时,禁止路径嵌套,例如:/a/b/c和/a/b/。 多文件/文件夹上传时,必须配置msm=1,此时可以用英文逗号分隔多个文件,例如:file_url1,file_url2。 多文件/文件夹上传时,文件和文件夹可以同时存在,例如:file_url1,folder_url1,file_url2,folder_url2。 folder_url 多文件/文件夹上传时可选 上传文件夹时必选 本地文件夹路径。 说明: 上传文件夹时,若未设置flat选项,则直接上传整个文件夹;若设置了flat选项,则上传文件夹下的所有内容。 多文件/文件夹上传时,禁止路径嵌套,例如:/a/b/c和/a/b/。 多文件/文件夹上传时,必须配置msm=1,此时可以用逗号分隔多个文件夹,例如:folder_url1,folder_url2。 多文件/文件夹上传时,文件和文件夹可以同时存在,例如:file_url1,folder_url1,file_url2,folder_url2。 filelist_url 多文件/文件夹上传时可选 包含待上传文件/文件夹列表的文件,必须配置msm=2。 说明: 该文件为普通文本文件(如.txt文件、.csv文件),文件中的每行代表一个待上传的文件/文件夹,例如: file_url1 file_url2 folder_url1 folder_url2 文件中待上传的文件/文件夹禁止路径嵌套,例如:/a/b/c和/a/b/。 bucket 必选 桶名。 key 可选 上传文件时的对象名/对象名前缀,或上传文件夹时的对象名前缀。 规则如下: 上传文件时,如果该值为空,则将对象上传到桶的根目录,对象名为文件名。如果该值不为空,若该值以“/”结尾,则以该值作为对象名前缀上传对象,对象名为该值+文件名;否则,将该值作为对象名进行上传; 上传文件夹时,如果该值为空,则将文件夹上传到桶的根目录;如果该值不为空,若该值以“/”结尾,则将该值作为对象名前缀上传文件夹;否则,将文件夹上传到以该值加上“/”结尾的对象名前缀下。 说明: 请参考上传示例理解该参数的使用方式。 fr 附加参数,上传文件时可选 上传文件时生成结果清单文件。 flat 附加参数,多文件/文件夹上传或上传文件夹时可选 上传文件夹时,只上传该文件夹下的所有内容。 arcDir 附加参数,可选 上传文件成功后的归档路径,上传成功后的文件会移动到该路径下。 dryRun 附加参数,可选 测试模式运行,不执行实际的上传操作。 link 附加参数,可选 上传软链接文件/文件夹指向的真实路径。 须知: 如果未指定该参数,而待上传的文件是一个软链接且该软链接指向的目标文件不存在,则Windows操作系统会产生“The system cannot find the file specified”的上传失败异常,而macOS/Linux操作系统会产生“No such file or directory”的上传失败异常。 文件夹软链接不能形成环,否则上传会以panic的形式退出;如果不希望产生panic,请在配置文件中配置panicForSymbolicLinkCircle为false。 u 附加参数,可选 增量上传操作,设置该参数后,上传每个文件时会对比桶中对应路径的对象,仅在对象不存在,或者对象大小与文件大小不一致,或者对象的最后修改时间早于文件的最后修改时间时进行上传。 注意: 在比较每个本地文件与桶内对象差异时,会产生一次HEAD请求费用。 vlength 附加参数,可选 上传完成后,验证桶中对象的大小是否与本地文件大小一致。 vmd5 附加参数,可选 上传完成后,验证桶中对象的MD5值是否与本地文件的MD5值一致。 说明: 如果待上传的本地文件较大,使用该参数将会因为计算MD5而导致整体性能下降。 MD5值校验通过后,会将该值设置为对象元数据x-obs-meta-md5chksum,用于下载或复制时校验MD5。 p 附加参数,可选 每个分段上传任务的最大并发数,默认为配置文件中的defaultParallels。 threshold 附加参数,可选 开启分段上传任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。 说明: 如果待上传的文件小于该阈值,则使用直接上传模式;否则使用分段上传模式。 直接上传模式不会产生断点记录文件,不支持断点续传。 支持带容量单位配置,例如,配置1MB代表1048576字节。 acl 附加参数,可选 上传文件时可指定的预定义访问策略。支持的值: private public-read public-read-write bucket-owner-full-control 说明: 以上四个值分别对应:私有读写、公共读、公共读写、桶拥有者完全控制,四种预定义访问策略。 sc 附加参数,可选 上传文件时可指定的对象的存储类型。支持的值: standard:标准存储,访问时延低、吞吐量高,适用于有大量热点文件(平均一个月多次)或小文件(小于1MB)。 warm:低频访问存储,可用性略低于standard,适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景。 cold:归档存储,安全、持久且成本极低,适用于很少访问(平均一年访问一次)数据的业务场景。 meta 附加参数,可选 上传文件时可指定的标准和自定义元数据。格式为:key1:value1#key2:value2#key3:value3。 说明: 以上值表示复制对象完成后,桶内目标对象包含三组自定义元数据,分别为:key1:value1、key2:value2、key3:value3。 标准元数据头包括:Content-Type、Content-Encoding、Cache-Control、Content-Disposition、Content-Language、Expires。 ps 附加参数,可选 每个分段上传任务的段大小,单位:字节,取值范围是100KB~5GB,默认为配置文件中的defaultPartSize。 说明: 支持带容量单位配置,例如,配置1MB代表1048576字节。 支持配置为auto,此时obsutil会根据源文件大小自动设置每个分段任务的段大小。 cpd 附加参数,可选 生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。 说明: 每个分段上传任务会产生唯一对应的断点记录文件并保存至该文件夹的upload子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 r 附加参数,上传文件夹时必选 多文件上传时可选 递归上传文件夹中的所有文件和子文件夹。 f 附加参数,多文件/文件夹上传或上传文件夹时可选 强制操作,不进行询问提示。 j 附加参数,多文件/文件夹上传或上传文件夹时可选 上传文件夹时批量任务的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 msm 附加参数,多文件/文件夹上传时必选 开启多文件/文件夹上传模式,支持的值:[1|2]。 说明: 如果msm=1则代表上传的URL是一组文件/文件夹列表(以英文逗号分隔)。 如果该值为msm=2则代表上传的URL是一个包含文件/文件夹列表的文件。 如果文件/文件夹名本身包含英文逗号,请不要使用msm=1的模式。 如果没有设置r参数,则列表中的文件夹不会被上传。 exclude 附加参数,多文件/文件夹上传或上传文件夹时可选 不包含文件的匹配模式,如:*.txt。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 如果待上传的文件名匹配该参数,则跳过该文件的上传。 须知: 建议使用引号传递该匹配模式(Linux/Mac操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于文件全路径(含文件名和文件目录)。 该匹配模式仅对文件夹中的文件生效。 支持指定多个exclude参数,如 -exclude=*.xxx -exclude=*.xxx include 附加参数,多文件/文件夹上传或上传文件夹时可选 包含文件的匹配模式,如:*.jpg。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 首先执行exclude的匹配规则,如果待上传的文件名不匹配exclude,则判断待上传的文件名是否匹配该参数,如果匹配则上传该文件,否则跳过该文件的上传。 说明: 如何使用include实现前缀匹配上传: ./obsutil cp /localpath/ obs://test/ -include=/localpath/2022-12-09/* -f -r 以上命令的含义是,上传本地路径localpath下符合匹配规则的文件到test桶下,匹配规则是以/localpath/2022-12-09/开头的。 须知: 建议使用引号传递该匹配模式(Linux/Mac操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于文件全路径(含文件名和文件目录)。 该匹配模式仅对文件夹中的文件生效。 支持指定多个include参数,如 -include=*.xxx -include=*.xxx at 附加参数,多文件/文件夹上传或上传文件夹时可选 指定按照文件最后访问时间作为timeRange匹配模式,仅上传最后访问时间满足timeRange时间段的文件。 说明: 需配合timeRange使用 disableDirObject 附加参数,多文件夹上传时可选 上传文件夹时候,文件夹本身不会作为一个对象上传,在有很多空文件夹场景时候可以避免无用文件夹上传到对象存储桶中;文件夹下有文件时候,文件夹下文件依然会上传并保持原有路径格式,不受影响。 timeRange 附加参数,多文件/文件夹上传或上传文件夹时可选 上传文件时的时间段匹配模式,仅上传最后修改时间在该时间段内的文件。 该匹配模式优先级低于文件名匹配模式:exclude和include,优先执行文件名匹配模式后才会执行该匹配模式。 说明: 使用“time1-time2”,代表匹配的时间段,其中time1必须小于等于time2,格式为yyyyMMddHHmmss。 时间格式支持自动补全,例如yyyyMMdd等价于yyyyMMdd000000,yyyyMM等价于yyyyMM01000000。 使用“*-time2”,代表匹配最后修改时间在time2之前的所有文件,使用“time1-*”,代表匹配最后修改时间time1之后的所有文件。 须知: 该匹配模式表示的时间是UTC时间。 mf 附加参数,可选 设置名称匹配模式(include、exclude)和时间匹配模式(timeRange)对文件夹也生效。 o 附加参数,可选 生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果、失败结果、警告结果三个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。 说明: 结果清单文件命名规则:cp_{succeed | failed | warning}_report_时间_TaskId.txt。 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"cp_failed_report_时间_TaskId.txt"及日志路径下的日志文件; config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 处理查询到的指标 查询指标中查询的指标数据通常有多条,例如组件有多个实例,则指标数据也有多条,或查询了一段时间的指标数据,该段时间内采集多条数据。 伸缩策略中的PromQL必须返回单个值,因此需要处理查询得到的指标数据,以得到单个值,示例如下: 查询最新一条指标,并求平均值,得到所有实例的http请求总数的平均值: avg(http_requests_total{environment_name="my_environment",application_name="my_application",component_name="my_component"}) 查询最近5分钟的所有指标数据,获取变化值(即增长值),并求平均,得到5分钟内平均每个实例的http请求增长数: avg(delta(http_requests_total{environment_name="my_environment",application_name="my_application",component_name="my_component"}[5m])) 更多请参考PromQL官方文档和PromQL官方示例。
  • 向导式需求与用例生成 由于“向导式需求与用例生成”可以更方便的生成需求和用例,下面对该方法进行介绍。 点击“向导式需求与用例生成”,第一阶段“生成可靠性用例”,确认使用到的“高阶云服务”和“自建服务”,待需求创建完成后,系统会根据您选择的对应的服务生成对应的可靠性用例。 高阶云服务:无需填写,解决方案工作台会自动同步架构图中使用的云服务类型。 自建服务:您需要根据实际情况,选择使用到的自建服务,此处以“Nginx”自建服务为示例(可多选)。 填写完成后,点击“下一步”。 图6 向导式生成可靠性用例 进入“生成集成用例”的页面,系统会根据上一步所选择的“高阶云服务”生成对应的集成测试用例,您可以点击测试用例右边的下拉框,展开用例的内容,并根据本次测试的方案的实际情况,修改用例内容中的“XXX”占位符。修改完成后点击“下一步”。 图7 向导式生成集成用例 进入“生成功能用例”的页面。 首先您需要先点击“下载功能用例模板” 图8 下载功能用例模板 打开下载好的功能用例模板,按照模板的格式完善表格中各个sheet的内容,此处以“功能清单”这个sheet举例,以下是对该sheet页表头信息的介绍。 产品名称:本次测试的方案的名称 方案模块/一级功能/二级功能/核心功能按钮:本次测试方案的功能模块的名称,要求保持跟所测试的系统内的功能命名保持一致。 步骤描述/预期结果:对“核心功能点”进行测试,填写对应的测试用例的步骤和对应步骤的预期结果。 标准版/高级版/公有云版/HCS版/伙伴云版:规格名称可编辑,根据系统实际分成哪些规格填写,并在对应的规格下勾选对应的功能。如有不涉及的规格列,可以删除。 图9 功能清单模板 “功能清单模板”填写完成后,点击“上传附件”,选择填写好的“功能清单模板”上传 。上传完成后点击“确认”。 图10 上传“功能清单模板” 向导式自动生成了各类测试需求。 图11 向导式生成需求 下拉检查各个创建好的需求是否有误,主要检查“业务功能”这条需求,看需求描述和用例详情内的功能是否与功能清单一致,该项将作为测试审核项之一。 确认无误后,点击“上传附件”,将填写好的“功能清单模板”在此处上传,方便后期查阅。 “功能清单模板”上传完成后,点击右下角的“保存并下一步”。 图12 确认需求&上传附件 进入“测试计划”页面,完善“测试计划”的设计。 点击“测试计划生成”按钮,会根据前面填写的项目起止时间,自动生成各个阶段的测试计划,您可以根据实际的项目计划时间重新编辑规划时间和责任人。您也可以通过“加载模板”和和“导入测试计划”的方式,重新生成测试计划。 图13 生成测试计划 测试计划创建完成后,您可以点击“上一步”,编辑修改前面步骤的内容;点击“保存”对编辑完的内容进行存档,方便下次再编辑。 图14 提交需求审核 点击“提交”按钮,将需求提交给华为测试工程师审核。 图15 提交测试需求
  • 请求示例 使用外部镜像文件制作数据镜像,其中,镜像标签数据格式为tags,OBS桶中外部镜像文件地址为“"image-test:fedora_data1.qcow2",操作系统为Linux,数据盘大小为40G。 1 2 3 4 5 6 7 8 9 10 11 12 POST https://{Endpoint}/v1/cloudimages/dataimages/action { "name": "fedora-data1", "image_url": "image-test:fedora_data1.qcow2", "description": "fedora的数据盘1", "min_disk": 40, "tags": [ "aaa.111", "bbb.222" ], "os_type": "Linux" } 使用外部镜像文件制作数据镜像,其中,镜像标签数据格式为image_tags,OBS桶中外部镜像文件地址为“"image-test:fedora_data1.qcow2",操作系统为Linux,数据盘大小为40G。 1 2 3 4 5 6 7 8 9 POST https://{Endpoint}/v1/cloudimages/dataimages/action { "name": "fedora-data2", "image_url": "image-test:fedora_data1.qcow2", "description": "fedora的数据盘2", "min_disk": 40, "image_tags": [{"key":"aaa","value":"111"},{"key":"bbb","value":"222"}], "os_type": "Linux" }
  • 请求示例 批量添加镜像标签,其中,标签键为“key1”对应的值为“value1”、标签键为“key2”对应的值为“value2”。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/67e17426-359e-49fb-aa12-0bd1756ec240/tags/action { "tags": [{ "value": "value1", "key": "key1" }, { "value": "value2", "key": "key2" }, { "value": "", "key": "key3" }], "action": "create" } 批量删除镜像标签,其中,标签键为“key1”对应的值为“value1”、标签键为“key2”对应的值为“value2”。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/67e17426-359e-49fb-aa12-0bd1756ec240/tags/action { "tags": [{ "value": "value1", "key": "key1" }, { "value": "value2", "key": "key2" }, { "value": "", "key": "key3" }], "action": "delete" }
共100000条