云服务器内容精选

  • 查看监控指标数据 以采集弹性云服务器的监控指标为例,查看弹性云服务器对应的命名空间、指标ID、维度的Key和Value。 在支持监控的服务列表页面查看对应的监控指标参考文档。 在参考文档中查看命名空间,弹性云服务器对应的命名空间为“SYS.E CS ”。 查看监控指标的指标ID和测量对象(维度),例如监控指标CPU使用率的指标ID为“cpu_util”,测量对象为“云服务器”。 查看维度的Key和Value,云服务器维度的Key和Value分别为instance_id和云服务器ID。
  • 操作步骤 参考登录AstroCanvas界面中操作,登录AstroCanvas界面。 在编辑页面状态下,选中组件,单击组件上方的。 在数据类型中,选择“静态数据”。 图1 选择静态数据 根据业务需求自定义静态数据,也可直接使用系统预置的数据,单击“保存”。 您可以通过“Excel模式”和“Json模式”两种模式设置静态数据。设置为“Excel模式”时,可执行如下操作: 单击“文件导入”,可将本地的数据导入到当前组件中使用。仅支持导入CSV和Excel格式的文件,且文件大小不能超过100KB。 执行导入操作前,请单击,查看当前组件对静态数据字段的要求。例如,玫瑰花饼图要求静态数据必须存在“s”和“value”字段列。如果不存在,右侧的“图表预览”将无法正常渲染。 图2 查看组件静态数据字段要求 图3 配置中无字段 单击“保存为静态数据集”,可将当前使用的静态数据保存为数据集。 图4 将静态数据保存为数据集 在弹出的提示页面,如果单击“确定”,可将当前组件的“数据类型”修改为静态数据保存后的数据集。 图5 将组件数据替换为数据集
  • 操作步骤 参考登录AstroCanvas界面中操作,登录AstroCanvas界面。 在编辑页面状态下,选中组件,单击组件上方的。 图1 单击数据 在数据类型中,选择“桥接器预置”,并选中所需的桥接器。 设置桥接器预置数据。 图2 设置桥接器参数 桥接器数据类型:桥接器的数据源类型,支持“静态数据”和自定义接口“AstroZero API”。 URL:配置为自定义接口的URL。如何查看自定义接口URL,请参考查看自定义接口。“桥接器数据类型”选择“AstroZero API”时,才显示该参数。 共享数据:是否共享数据。勾选表示某项目里多个组件调用一个公共的请求(请求路径与入参均一致才视为同一公共请求)而访问同一个接口的数据,避免多次调接口。“桥接器数据类型”选择“AstroZero API”时,才显示该参数。 输入数据:系统已预置了静态数据,如果需要自定义静态数据,请重置数据。“桥接器数据类型”选择“静态数据”时,才显示该参数。 刷新周期:每隔多少秒调用一次后台接口,默认配置为“0”,表示只调用一次。 设置完成后,单击“保存”。
  • 初始化DIS客户端 您可以使用以下两种方法初始化DIS SDK客户端实例,优先选择使用代码进行初始化。其中,“endpoint”,“ak”,“sk”,“region”,“projectId”信息请参看获取认证信息。 使用代码初始化DIS SDK客户端实例。 1 2 3 4 5 6 7 8 9 10 11 12 13 // 创建DIS客户端实例 DIS dic = DISClientBuilder.standard() .withEndpoint("YOUR_ENDPOINT") // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 .withAk(System.getenv("HUAWEICLOUD_SDK_AK")) .withSk(System.getenv("HUAWEICLOUD_SDK_SK")) .withProjectId("YOUR_PROJECT_ID") .withRegion("YOUR_REGION") // 以下配置失败时的重试次数 .withProperty(DISConfig.PROPERTY_PRODUCER_RECORDS_RETRIES, "-1") .withProperty(DISConfig.PROPERTY_PRODUCER_EXCEPTION_RETRIES, "-1") .build(); 若需要使用代理,请使用如下方法初始化DIS客户端: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // 创建DIS客户端实例 DIS dic = DISClientBuilder.standard() .withEndpoint("YOUR_ENDPOINT") // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 .withAk(System.getenv("HUAWEICLOUD_SDK_AK")) .withSk(System.getenv("HUAWEICLOUD_SDK_SK")) .withProjectId("YOUR_PROJECT_ID") .withRegion("YOUR_REGION") .withProxyHost("YOUR_PROXY_HOST") // 代理IP .withProxyPort("YOUR_PROXY_PORT") // 代理端口 .withProxyProtocol(Protocol.HTTP) // 代理协议,默认为HTTP .withProxyUsername("YOUR_PROXY_USER_NAME") // 代理用户名(可选) .withProxyPassword("YOUR_PROXY_PASSWORD") // 代理密码(可选) // 以下配置失败时的重试次数 .withProperty(DISConfig.PROPERTY_PRODUCER_RECORDS_RETRIES, "-1") .withProperty(DISConfig.PROPERTY_PRODUCER_EXCEPTION_RETRIES, "-1") .build(); 若需在客户端设置DIS连接超时时间,请使用如下方法初始化DIS客户端: 1 2 3 4 5 6 7 8 9 // 创建DIS客户端实例 DIS dic = DISClientBuilder.standard() .withEndpoint("YOUR_ENDPOINT") .withAk(System.getenv("HUAWEICLOUD_SDK_AK")) .withSk(System.getenv("HUAWEICLOUD_SDK_SK")) .withProjectId("YOUR_PROJECT_ID") .withRegion("YOUR_REGION") .withProperty(DISConfig.PROPERTY_CONNECTION_TIMEOUT, "60") // 单位:秒 .build(); 若需要开启传输压缩,请使用如下方法初始化DIS客户端: 1 2 3 4 5 6 7 8 9 10 11 12 13 // 创建DIS客户端实例 DIS dic = DISClientBuilder.standard() .withEndpoint("YOUR_ENDPOINT") .withAk(System.getenv("HUAWEICLOUD_SDK_AK")) .withSk(System.getenv("HUAWEICLOUD_SDK_SK")) .withProjectId("YOUR_PROJECT_ID") .withRegion("YOUR_REGION") .withBodyCompressEnabled(true) .withBodyCompressType(CompressionType.ZSTD) // 配置压缩算法,当前支持lz4和zstd,默认值为lz4 // 以下配置失败时的重试次数 .withProperty(DISConfig.PROPERTY_PRODUCER_RECORDS_RETRIES, "-1") .withProperty(DISConfig.PROPERTY_PRODUCER_EXCEPTION_RETRIES, "-1") .build(); 若需在客户端将 数据加密 后再上传到DIS,DIS SDK提供了加密方法。即在构建disclient时增加参数DataEncryptEnabled和data.password。 1 2 3 4 5 6 7 8 9 10 11 12 13 // 创建DIS客户端实例 DIS dic = DISClientBuilder.standard() .withEndpoint("YOUR_ENDPOINT") .withAk(System.getenv("HUAWEICLOUD_SDK_AK")) .withSk(System.getenv("HUAWEICLOUD_SDK_SK")) .withProjectId("YOUR_PROJECT_ID") .withRegion("YOUR_REGION") .withDataEncryptEnabled(true) .withProperty("data.password", "xxx") //xxx替换为用户配置的数据加密密钥 // 以下配置失败时的重试次数 .withProperty(DISConfig.PROPERTY_PRODUCER_RECORDS_RETRIES, "-1") .withProperty(DISConfig.PROPERTY_PRODUCER_EXCEPTION_RETRIES, "-1") .build(); 若使用JAVA SDK加密上传数据,读取数据也需要使用JAVA SDK配置相同的密钥。 使用配置文件初始化DIS SDK客户端实例。 在“dis-sdk-demo\src\main\resources”目录下的“dis.properties”文件中添加如下配置项。 ak/sk:用户在 IAM 中创建的AK/SK。 region:用户使用通道所在的区域。 endpoint:DIS的访问地址。 projectId:通道所在的资源ID。 1 2 // 创建DIS客户端实例 DIS dic = DISClientBuilder.standard().build(); 父主题: 使用SDK(Java)
  • 初始化DIS客户端 您可以使用以下方法初始化DIS SDK客户端实例。其中,“endpoint”,“ak”,“sk”,“region”,“projectId”信息请参看获取认证信息。 cli = disclient(endpoint='**your-endpoint**', // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak=os.environ.get("HUAWEICLOUD_SDK_AK"), sk=os.environ.get("HUAWEICLOUD_SDK_SK"), projectid='**your-projectid**', region='**your-region**') 父主题: 使用SDK(Python)
  • Protobuf格式上传流式数据 参见初始化DIS客户端的操作初始化一个DIS客户端实例。 初始化DIS客户端,加入一项参数bodySerializeType,如下所示: cli = disclient(endpoint='', ak=os.environ.get("HUAWEICLOUD_SDK_AK"), sk=os.environ.get("HUAWEICLOUD_SDK_SK"), projectid='', region='',bodySerializeType='protobuf') 配置参数如下: 1 streamname="dis-test1" #已存在的通道名 参照该文件中的test方法,bodySerializeType="protobuf"选取protobuf格式上传。 protobuf_putRecords_sample.py文件中的protobuf_putRecords_test方法中的records为需要上传的数据内容,数据上传格式如下: 1 2 3 4 records=[{"data": "abcdefd", "partition_id": “shardId-0000000001”}] #"data":"xxx"为上传的数据值,请自定义;“partition_id”:“shardId-0000000001”为数据写入的分区id值,请自定义。 record1 = {"data": "xxx","partition_id": partition_id} #可写入多条数据,数据格式如record1所示,每写一条数据使用下面的append方法传入records中。 配置好以上参数后,执行protobuf_putRecords_sample.py文件调用protobuf_putRecords_test方法,响应结果下: 1 2 200 {'failed_record_count': 0, 'records': [{'partition_id': 'shardId-0000000001', 'sequence_number': '15'}]} 父主题: 使用SDK(Python)
  • DIS服务端错误码 在使用SDK进行操作时如果遇到错误,会在控制台显示错误码描述错误信息。 http状态码 错误码 Error Message 说明 处理措施 441 DIS.4100 Authorization error. 使用AKSK生成的签名信息错误 请检查请求头里的签名信息是否无误。 441 DIS.4101 Authorization header cannot be empty. 使用AKSK生成的签名信息为空 请求头里的签名信息为空,检查是否未生成签名信息。 441 DIS.4102 Incorrectly parsed authorization header. 无法解析签名 请检查请求头里的签名信息。 441 DIS.4103 Empty X-Sdk-Date header. 请求头里的X-Sdk-Date字段为空 请检查请求头里的X-Sdk-Date字段并补齐。 441 DIS.4104 Error parsing X-Sdk-Date header. 无法解析请求头里的X-Sdk-Date字段 请检查请求头里的X-Sdk-Date字段并修正。 441 DIS.4105 Invalid X-Sdk-Date header. 请求头里的X-Sdk-Date字段无效 请检查请求头里的X-Sdk-Date字段并修正。 441 DIS.4106 Empty AcessKey header. 请求头里的签名信息Authorization字段中缺失AK 请检查是否传入AK。 441 DIS.4107 Invalid AcessKey header. 请求头里的签名信息Authorization字段中的AK无效 请检查是否传入有效的AK,避免AK填写错误、AK被删除、临时AK过期等。 441 DIS.4108 Empty ServiceName header. 请求头里的签名信息Authorization字段中缺失服务名 请检查请求头里的Authorization字段中是否包含服务名dis。 441 DIS.4109 The Authorization header must contain the following field: {Credential,SignedHeaders,Signature;} 请求头里的签名信息Authorization字段有误 请检查请求头里的Authorization字段是否包含Credential,SignedHeaders, Signature。 441 DIS.4110 Empty Signature header. 请求头里的签名信息Authorization字段中没有SignedHeaders 请检查签名的生成方式是否有误。 441 DIS.4111 Invalid Region header. 请求头里的签名信息Authorization字段中的region无效 请检查是否传入有效的region。 441 DIS.4112 Invalid authorization request. 使用AKSK生成的签名信息错误 请检查签名的生成方式是否有误,检查AK、SK、region等信息。 441 DIS.4113 Empty Token header. 使用token认证时,请求头里的X-Auth-Token为空 请检查请求头里的X-Auth-Token。 441 DIS.4114 Invalid Token header. 使用token认证时,请求头里的X-Auth-Token无效 请检查请求头里的X-Auth-Token是否过期。 403 DIS.4116 Invalid RBAC. 用户操作受限 请根据返回的具体信息判断账号是否未实名认证、欠费、无DIS服务的操作权限等。 400 DIS.4117 Invalid Project Id. 用户传入的projectId无效 请检查传入的projectId是否有效,是否传入了其他project的id。 400 DIS.4200 Invalid request. 用户的请求无效 请参考API文档检查请求。 400 DIS.4201 Invalid partition_id. 用户传入的partition_id无效 请检查partition_id是否无效。 400 DIS.4202 Empty request. 用户的请求为空 请传入有效的请求。 400 DIS.4203 Invalid monitoring period. 查询监控信息的startTime无效 请传入有效的时间戳。 400 DIS.4204 The monitoring period cannot be longer than 7 days. 仅允许查询最近7天内的监控信息 请查询最近7天内的监控信息。 400 DIS.4208 Invalid MRS cluster. 创建MRS转储任务时,传入的MRS集群无效 请检查传入的MRS集群名称和ID,集群状态是否为运行中,以及是否为安全模式的集群。 400 DIS.4209 Invalid metrics label. 查询监控信息时,传入的监控指标不合法 请参考API文档检查监控指标并修正。 400 DIS.4215 Invalid cursor type. 获取数据游标时,传入的游标类型cursor-type不合法 请参考API文档检查cursor-type字段的范围并修正。 400 DIS.4216 Invalid sequence_number. 获取数据游标时,传入的序列号starting-sequence-number不合法 请传入有效的starting-sequence-number。 400 DIS.4217 Invalid partition cursor. 从DIS通道下载数据时,传入的数据游标partition-cursor无效 请重新获取partition-cursor并下载数据。 400 DIS.4219 The file is constantly resent. 该文件已经收到了 文件已经收到不需要再上传。 400 DIS.4220 The block whose sequence number is %s needs to be resent. 文件块需要重新上传 请按照指示上传对应的块。 400 DIS.4221 Block seq %s is expected 重复传入相同的文件块 请从系统期待的块开始上传。 400 DIS.4222 Block seq %s is expected. 传入的文件块不连续 从系统期待的块开始上传。 400 DIS.4223 The file size exceeds the limit. 文件的容量超过了DIS的限制 请拆分文件并再上传。 400 DIS.4224 The sequence number is out of range. 获取数据游标时,传入的序列号starting-sequence-number不在有效范围 请传入有效的starting-sequence-number。 400 DIS.4225 Expired partition cursor. 从DIS通道下载数据时,传入的数据游标partition-cursor过期 请重新获取partition-cursor并下载数据。 400 DIS.4226 A partition iterator error occurred or a record to which the SN corresponds has expired. Try to obtain the partition iterator again. 获取数据时,传入的数据游标partition-cursor对应的序列号starting-sequence-number过期 请获取获取数据游标,并用新游标获取数据。 400 DIS.4300 Request error. 请求体错误 请对照API文档修正请求体。 400 DIS.4301 The stream does not exist. 通道不存在 请检查传入的通道是否存在。 400 DIS.4302 The partition does not exist. 通道的分区不存在 请检查用户传入的分区ID是否存在。 400 DIS.4303 Exceeded traffic control limit. 超出流控 请扩容通道或降低上传速率。 400 DIS.4305 Too many stream requests. 同一时间内用户请求太多 请降低请求频率并重试。 400 DIS.4306 The bucket does not exist. 传入的OBS桶不存在 请检查OBS桶是否存在。 400 DIS.4307 The stream already exists. 指定的通道已经存在 请修改通道名称并重新创建通道 400 DIS.4308 Insufficient quota. 通道或分区的配额不足 请释放配额或提工单修改账号的配额。 400 DIS.4309 Too many request failures. Please try again later. ip被加入黑名单 由于频繁的错误访问导致用户ip被加入黑名单,请检查认证信息和请求是否有效,并稍后重试。 400 DIS.4310 OBS access error. 访问OBS失败 请检查用户是否有访问OBS的权限。 400 DIS.4329 app quota exceeded. APP配额超出限制 请释放APP的配额。 400 DIS.4330 app already exist. 已经存在同名的APP 请修改APP名称并重新创建APP。 400 DIS.4331 app is using. 删除app时,当前app在使用中 请确认app是否在使用中,如需删除请停止使用并重新删除。 400 DIS.4332 app not found. 指定的APP不存在 请检查指定的APP名称是否正确 400 DIS.4335 Invalid IAM agency. 创建转储任务时,使用的IAM委托无效 检查DIS创建的dis_admin_agency或用户自定义的IAM委托是否存在,权限是否完整。 400 DIS.4336 Invalid HDFS path. 创建MRS转储任务时,传入的MRS HDFS路径无效 请检查传入的MRS HDFS路径是否存在。 400 DIS.4337 The DLI database does not exist. 创建DLI转储任务时,传入的DLI数据库不存在 请检查传入的DLI数据库是否存在。 400 DIS.4338 The DLI table does not exist. 创建DLI转储任务时,传入的DLI数据表不存在 请检查传入的DLI表是否存在,并且是否为DLI内表。 400 DIS.4350 Invalid DWS cluster. 创建DWS转储任务时,传入的DWS集群不存在 请检查DWS集群是否存在,运行是否正常。 400 DIS.4351 Invalid KMS userKey. 创建DWS转储任务时,传入的KMS密钥信息无效 请检查KMS密钥是否存在。 400 DIS.4354 The transfer task does not exist. 删除或更新转储任务时,转储任务不存在 请检查转储任务是否存在。 400 DIS.4355 The transfer task already exists. 创建转储任务时,同一个通道下已存在同名的转储任务 请修改新创建转储任务的名称并重新创建。 400 DIS.4357 Exceeded transfer task quota. 单个通道仅允许同时存在5个转储任务,再创建新的转储任务会超出配额限制 请删除废弃的转储任务释放配额。 400 DIS.4358 The stream supports specific transfer tasks. Check the data type of the stream. 小文件转储的通道不支持创建普通转储任务 请创建新的通道并创建转储任务。 400 DIS.4360 Invalid data schema. 创建通道或更新通道时,传入的data_schema无效 请检查data_schema的格式并重试。 400 DIS.4601 The number of resource tags has reached the maximum. 一个资源上最多有10个标签,添加标签时资源上已添加的标签数超出限制 请删除废弃的标签并重新添加标签。 400 DIS.4602 Invalid resource type. 资源类型不合法 请检查资源类型是否合法。 400 DIS.4603 The resource does not exist. 资源不存在 请确认该资源是否已被删除。 400 DIS.4604 The key does not exist. 标签Key不存在 请确认标签Key是否存在。 400 DIS.4605 The action is not supported. 当前标签操作不支持 请确认当前标签操作是否合法,当前仅支持create和delete操作。 500 DIS.5000 System error. 内部服务错误 请联系技术支持。 500 DIS.5100 HBase error. 连接HBase超时、转储查询异常、其他HBase异常 请联系技术支持。 500 DIS.5150 Redis error. Redis连接异常、数据异常、消息广播异常deng 请联系技术支持。 500 DIS.5200 Zookeeper error. Zookeeper异常,创建topic、删除topic、 给topic添加分区时失败 请联系技术支持。 500 DIS.5250 Kafka error. Kafka异常 请联系技术支持。 500 DIS.5251 Kafka create topic timeout. Kafka创建topic超时 请联系技术支持。 500 DIS.5252 Kafka topic does not exist. Kafka连接错误 请联系技术支持。 500 DIS.5380 Kafka Connect error. Kafka连接错误 请联系技术支持。 500 DIS.5400 Resourcemgt error. Resourcemgt服务创建、更新、删除通道错误或新增分区错误 请联系技术支持。 500 DIS.5401 Kafka partition resource exhausts. Kafka分区资源耗尽 请联系技术支持。 500 DIS.5402 Kafka partition resources are about to be exhausted. Kafka分区资源容量即将售罄 请联系技术支持。 500 DIS.5550 Firehose error. 创建文件失败或者传输文件到OBS失败 请联系技术支持。 500 DIS.5600 Service admin account error. 内置租户账号异常 请联系技术支持。 500 DIS.5601 Service op svc account error. 管理租户账号异常 请联系技术支持。 500 DIS.5750 IAM error. 服务内部调用IAM服务异常 请联系技术支持。 500 DIS.5760 CES error. 将指标上载到CES错误 请联系技术支持。 500 DIS.5780 DCS error. Redis链接失败 请联系技术支持。 500 DIS.5850 OBS error. OBS异常 请联系技术支持。 500 DIS.5900 Partition is readonly for DISK is not enough. 磁盘已满,无法写入数据 请联系技术支持。 父主题: 异常信息
  • Protobuf格式下载 参见初始化DIS客户端的操作初始化一个DIS客户端实例。 初始化DIS客户端,加入一项参数bodySerializeType,如下所示: cli = disclient(endpoint='', ak=os.environ.get("HUAWEICLOUD_SDK_AK"), sk=os.environ.get("HUAWEICLOUD_SDK_SK"), projectid='', region='',bodySerializeType='protobuf')
  • 开通DIS服务 注册云服务账号。 开通DIS服务。 使用DIS服务之前必须先充值,才能正常使用DIS服务。 登录DIS管理控制台。 单击页面右上角的“费用”。 单击“充值”,系统自动跳转到充值窗口。 根据界面提示信息,对账户进行充值。 充值成功后,关闭充值窗口,返回管理控制台首页。 单击“ 数据接入服务 ”,开通服务。 创建访问密钥。 DIS通过用户账户中的AK和SK进行签名验证,确保通过授权的账户才能访问指定的DIS资源。 登录DIS控制台。 单击页面右上角的用户名,选择“我的凭证”。 “我的凭证”页面,单击“管理访问密钥”区域下方的“新增访问密钥”。 根据界面提示输入相关信息并保存新创建的访问密钥。 每个用户最多可创建两个有效的访问密钥。 为防止访问密钥泄露,建议您将其保存到安全的位置。如果用户在此提示框中单击“取消”,则不会下载密钥,后续也将无法继续下载,用户必须将此密钥删除后再创建新的访问密钥。 父主题: 开通DIS
  • 运行程序 出现类似信息表示下载数据成功: 14:55:42.954 [main] INFOcom.bigdata.dis.sdk.DISConfig - get from classLoader 14:55:44.103 [main] INFOcom.bigdata.dis.sdk.util.config.ConfigurationUtils - get from classLoader 14:55:44.105 [main] INFOcom.bigdata.dis.sdk.util.config.ConfigurationUtils - propertyMapFromFile size : 2 14:55:45.235 [main] INFOcom.bigdata.dis.sdk.demo.ConsumerDemo - Get stream streamName[partitionId=0] cursor success : eyJnZXRJdGVyYXRvclBhcmFtIjp7InN0cmVhbS1uYW1lIjoiZGlzLTEzbW9uZXkiLCJwYXJ0aXRpb24taWQiOiIwIiwiY3Vyc29yLXR5cGUiOiJBVF9TRVFVRU5DRV9OVU1CRVIiLCJzdGFydGluZy1zZXF1ZW5jZS1udW1iZXIiOiIxMDY4OTcyIn0sImdlbmVyYXRlVGltZXN0YW1wIjoxNTEzNjY2NjMxMTYxfQ 14:55:45.305 [main] INFOcom.bigdata.dis.sdk.demo.ConsumerDemo - Get Record [hello world.], partitionKey [964885], sequenceNumber [0]. 14:55:45.305 [main] INFOcom.bigdata.dis.sdk.demo.ConsumerDemo - Get Record [hello world.], partitionKey [910960], sequenceNumber [1]. 14:55:46.359 [main] INFOcom.bigdata.dis.sdk.demo.ConsumerDemo - Get Record [hello world.], partitionKey [528377], sequenceNumber [2].
  • 功能简介 将用户本地数据通过DIS通道不断上传至DIS服务。 目前数据支持存储至DIS和 对象存储服务 (Object Storage Service,简称OBS) MapReduce服务 (MapReduce Service,简称MRS)、 数据仓库 服务(Data Warehouse Service,简称DWS)、 数据湖探索 (Data Lake Insight,简称DLI),具体存储位置在新增转储任务的“数据转储”中配置。 DIS为临时存储器,存储在DIS中的数据最长保留时间为步骤 3中配置的“生命周期”的值。
  • 操作步骤 使用注册账户登录DIS控制台。 单击管理控制台左上角的,选择区域和项目。 单击“购买接入通道”配置相关参数。 表1 接入通道参数说明 参数 参数解释 参数示例 计费模式 按需计费 按需计费 区域 指的是云服务所在的物理位置。您可以在下拉框中选择并切换区域。 华北-北京1 基本信息 通道名称 用户发送或者接收数据时,需要指定通道名称,通道名称不可重复。通道名称由英文字母、数字、中划线和下划线组成。长度为1~64个字符。 dis-Tido 通道类型 普通通道单分区容量:最高发送速度可达1MB/秒或1000条记录/秒(达到任意一种速度上限才会被限流),最高提取速度可达 2MB/秒,单次请求的记录总大小不能超过1MB(不包含partitionKey数据大小)。 高级通道单分区容量:最高发送速度可达 5MB/秒或2000条记录/秒(达到任意一种速度上限才会被限流),最高提取速度可达 10MB/秒,单次请求的记录总大小不能超过5MB(不包含partitionKey数据大小) - 分区数量 分区是DIS数据通道的基本吞吐量单位。 5 分区计算 用户可以根据实际需求通过系统计算得到一个建议的分区数量值。 单击“分区计算”,弹出“计算所需分区数量”对话框。 根据实际需求填写“平均记录大小”、“最大写入记录数”和“消费程序数量”,“预估所需分区数量”选项框中将显示所需的分区数量,此值不可修改。 说明: 所需分区计算公式: 按流量计算所需写分区数:(所得数值需向上取整后作为分区数) 普通通道:平均记录大小*(1+分区预留比例20%)*最大写入记录数/(1*1024KB) 高级通道:平均记录大小*(1+分区预留比例20%)*最大写入记录数/(5*1024KB) 按消费程序数量计算读分区数:(消费程序数量/2后的数值需要保留两位小数,然后乘以“按流量计算所需写分区数”,最终取值需向上取整) (消费程序数量/2)*按流量计算所需的写分区数 获取“按流量计算所需写分区数”、“按消费程序数量计算读分区数”中的最大值作为预估所需分区数量。 单击“使用计算值”将系统计算出的建议值应用于“分区数量”。 - 生命周期(小时) 存储在DIS中的数据保留的最长时间,超过此时长数据将被清除。 取值范围:24~72的整数。 24 源数据类型 BLOB:存储在数据库管理系统中的一组二进制数据。“源数据类型”选择“BLOB”,则支持的“转储服务类型”为“OBS”、“MRS”。 JSON:一种开放的文件格式,以易读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。“源数据类型”选择“JSON”,则支持的“转储服务类型”为“OBS”、“MRS”、“DLI”和“DWS”。 CSV:纯文本形式存储的表格数据,分隔符默认采用逗号。 “源数据类型”选择“CSV”,则支持的“转储服务类型”为“OBS”、“MRS”、“DLI”、“DWS”。 JSON 自动扩缩容 创建通道的同时是否开启自动扩缩容功能。 通过单击通过单击或来关闭或开启自动扩缩容开关。 说明: 用户可在创建通道时定义是否自动扩缩容,也可对已创建的通道修改自动扩缩容属性。 自动缩容最小分区数 设置自动缩容的分区下限,自动缩容的目标分区数不小于下限值。 - 自动扩容最大分区数 设置自动扩容的分区上限,自动扩容的目标分区数不超过上限值。 - 源数据分隔符 源数据为CSV格式时的数据分隔符。 - Schema开关 创建通道的同时是否为其创建数据Schema。源数据类型为JSON或CSV时可配置该参数。 通过单击或来关闭或开启Schema配置开关。 说明: 若创建通道时,没有同时创建数据Schema,可待通道创建成功后。到通道的管理页面创建数据Schema,详情请参见管理源数据Schema。 “源数据类型”为“JSON”和“CSV”时,可选择创建数据Schema。 源数据Schema 支持输入和导入源数据样例,源数据样例格式为JSON或者CSV,详细操作请参见管理源数据Schema。 在左侧文本框中输入JSON或者CSV格式的源数据样例,也可单击导入源数据样例。 在左侧文本框中单击,可删除左侧文本框中已输入或导入的源数据样例。 在左侧文本框中单击,可在右侧文本框中根据源数据样例生成Avro schema。 在右侧文本框中单击,可删除已生成的Avro schema。 在右侧文本框中单击,可修改已生成的Avro schema。 仅当“Schema配置开关”配置为“开启”:时需要配置此参数。 企业项目 配置通道所属的企业项目。已开通企业项目管理服务的用户才可以配置该参数。默认值为default。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 您可以选择默认的企业项目“default”或其他已有的企业项目。如果要创建新的企业项目,请登录企业管理控制台进行创建,详细操作请参考《企业管理用户指南》。 - 现在配置 单击“现在配置”,呈现添加标签。 添加标签具体请参考管理通道标签。 - 暂不配置 暂不配置任何信息。 - 标签 标签是通道的标识。为通道添加标签,可以方便用户识别和管理拥有的通道资源。 - 单击“立即购买”,弹出“规格确认”页面。 单击“提交”,完成通道接入。
  • 约束限制 每个通道在一小时内仅可操作实现10次自动扩容、10次手动扩容、1次缩容(包含手动缩容和自动缩容)操作。 进行弹性伸缩分区后,有如下注意事项: 上传数据时,不建议设置数据的PartitionKey,DIS会自动根据通道分区的数量将数据均匀散列到多个分片中。如果设置数据的PartitionKey,可能会导致数据倾斜,产生通道限流。 下载数据时,需要定期的使用descriptStream接口检测通道分区数量的变化,以便DIS可以下载到所有分区的数据。
  • 自动扩缩容 自动扩缩容原理 当上一分钟内通道触发流控(即超过通道内分区最大吞吐量开始限流)、且通道上传流量大于通道总带宽80%时,触发自动扩容操作,扩容目标分区数=分区数/0.6,向上取整。 例如,有5个普通分区时,上传总带宽为5MB/秒。当上一分钟通道触发流控后、且通道上传流量达到4MB/秒以上时,触发自动扩容操作,目标分区数为5/0.6=8.3,向上取整后为9。 当通道上传流量和下载流量均小于30%时,触发自动缩容操作,缩容目标分区数=分区数/2,向下取整。 例如,有5个普通分区时,上传总带宽为5MB/秒,下载总带宽为10MB/秒。当通道上传流量低于1.5MB/秒、且下载流量低于3MB/秒时,触发自动缩容操作,目标分区数为5/2=2.5,向下取整后为2。 自动扩缩容规则 自动扩缩容间隔时间大于1分钟,且发生扩容(含自动扩容和手工扩容)后2分钟内,不触发自动缩容。发生缩容(包含手动缩容和自动缩容)后的2分钟内,不触发自动扩容。 扩容分区时,首先将状态为“DELETED”的分区恢复为“ACTIVE”状态,成为可读写分区。其次将状态为“EXPIRED”的分区恢复为“ACTIVE”状态,成为可读写分区。若前两者恢复后仍不满足扩容需求,系统将新建分区。 对已有分区进行缩容操作后,缩容成功的分区不再进行计费也不参与配额控制。在步骤1:开通DIS通道中配置的“生命周期”时间内,缩容成功的分区可以读取数据不可写入数据,超过此时间则不可读取/写入数据。 执行自动扩缩容操作 使用注册账户登录DIS控制台。 单击管理控制台左上角的,选择区域和项目。 按照如下方法进行自动扩缩容。 在左侧列表栏中选择“通道管理”。 在“通道管理”页面中单击需要扩缩容的通道名称。 单击通道详情页面的“自动扩缩容”菜单后的编辑按钮。 系统弹出“变更自动扩缩容参数”对话框,将自动扩缩容的开关开启。 图1 变更自动扩缩容参数 设置自动扩缩容的分区上限和下限,单击“确认”。
  • 手动扩缩容 手动扩缩容规则 扩容分区时“目标分区数量”需大于当前分区数量,且小于等于租户剩余配额与当前分区数量的总和。 扩容分区时,首先将状态为“DELETED”的分区恢复为“ACTIVE”状态,成为可读写分区。其次将状态为“EXPIRED”的分区恢复为“ACTIVE”状态,成为可读写分区。若前两者恢复后仍不满足扩容需求,系统将新建分区。 缩容分区时“目标分区数量”需要大于等于“1”,且小于当前分区数量。 对已有分区进行缩容操作后,缩容成功的分区不再进行计费也不参与配额控制。在步骤1:开通DIS通道中配置的“生命周期”时间内,缩容成功的分区可以读取数据不可写入数据,超过此时间则不可读取/写入数据。 执行手动扩缩容操作 使用注册账户登录DIS控制台。 单击管理控制台左上角的,选择区域和项目。 选择如下任意一种方法进行手动扩缩容。 在左侧列表栏中选择“通道管理”。 在“通道管理”页面中单击需要扩缩容的通道名称。 在通道详情页面的右上角单击“扩缩容”按钮,弹出“变更分区数目”对话框。 修改“目标分区数”,单击“确认”。 在左侧列表栏中选择通道管理。 针对待扩缩容的通道,选中“操作”列中的“更多”下拉列表中的“扩缩容”。 弹出“变更分区数目”对话框。 修改“目标分区数”,单击“确认”。