检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
将Spark作业结果存储在MySQL数据库中,缺少pymysql模块,如何使用python脚本访问MySQL数据库? 缺少pymysql模块,可以查看是否有对应的egg包,如果没有,在“程序包管理”页面上传pyFile。具体步骤参考如下: 将egg包上传到指定的OBS桶路径下。 登录DLI管理控制台,单击“数据管理
步骤6:提交SQL作业 使用标准SQL语句进行数据的查询和分析。 准备工作 已注册华为账号并开通华为云,且在使用DLI前检查账号状态,账号不能处于欠费或冻结状态。 配置DLI委托访问授权 DLI使用过程中涉及到OBS、VPC、SMN等服务交互,首次使用DLI需要用户配置委托授权,允许访问这些依赖服务。
启动作业后,系统将自动跳转到Flink作业管理页面,新创建的作业将显示在作业列表中,在“状态”列中可以查看作业状态。作业提交成功后,状态将由“提交中”变为“运行中”。 如果作业状态为“提交失败”或“运行异常”,表示作业提交或运行失败。用户可以在作业列表中的“状态”列中,将鼠标移动到状态图标上查看错误信息,单击可以
'robot_name' at row 1。 原因分析 客户的数据中存在emoj表情,这些表情是按照四个字节一个单位进行编码的,而通常使用的utf-8编码在mysql数据库中默认是按照三个字节一个单位进行编码的,这个原因导致将数据存入mysql数据库时出现错误。 出现该问题可能原因如下: 数据库编码问题。
MySQL中的数据,并写入到Print结果表中,其具体步骤如下(本示例使用RDS MySQL数据库引擎版本为MySQL 5.7.32)。 参考增强型跨源连接,根据MySQL所在的虚拟私有云和子网创建相应的增强型跨源,并绑定所要使用的Flink弹性资源池。 设置MySQL的安全组,添加入向规则使其对F
Hudi数据表Clean规范 Clean也是Hudi表的维护操作之一,该操作对于MOR表和COW表都需要执行。Clean操作的目的是为了清理旧版本文件(Hudi不再使用的数据文件),这不但可以节省Hudi表List过程的时间,也可以缓解存储压力。 规则 Hudi表必须执行Clean。
示例3:使用CTAS语句将源表的全部数据或部分数据创建新的DLI表 示例说明:根据示例1:创建DLI非分区表中创建的DLI表table1,使用CTAS语法将table1中的数据复制到table1_ctas表中。 在使用CTAS建表的时候,可以忽略被复制的表在建表时所使用的语法,即
GEOMETRYCOLLECTION STRING MySQL中的空间数据类型将转换为具有固定Json格式的字符串。 示例 该示例是利用MySQL-CDC实时读取RDS MySQL中的数据及其元数据,并写入到Print结果表中。 本示例使用RDS MySQL数据库引擎版本为MySQL 5.7.33。 参考增
Hudi数据表Archive规范 Archive(归档)是为了减轻Hudi读写元数据的压力,所有的元数据都存放在这个路径:Hudi表根目录/.hoodie目录,如果.hoodie目录下的文件数量超过10000就会发现Hudi表有非常明显的读写时延。 规则 Hudi表必须执行Archive。
来产生新版本的Parquet文件,那旧版本的文件就不能被Clean清理,增加存储压力。 提交Spark jar作业时,CPU与内存比例为1:4~1:8。 Compaction作业是将存量的parquet文件内的数据与新增的log中的数据进行合并,需要消耗较高的内存资源,按照之前的
示例3:使用CTAS将源表的全部数据或部分数据创建新的DLI表 示例说明:根据示例1:创建DLI非分区表中创建的DLI表table1,使用CTAS语法将table1中的数据复制到table1_ctas表中。 在使用CTAS建表的时候,可以忽略被复制的表在建表时所使用的语法,即不
Hudi数据表设计规范 Hudi表模型设计规范 Hudi表索引设计规范 Hudi表分区设计规范 父主题: DLI Hudi开发规范
--DLI侧创建的Password类型的跨源认证名称。使用跨源认证则无需在作业中配置账号和密码。 'database-name' = 'testrdsdb',--RDS MySQL实例的数据库名 'table-name' = 'mysqlcdc'--RDS MySQL实例的数据库下的表名 ); create
Hudi数据表管理操作规范 Hudi数据表Compaction规范 Hudi数据表Clean规范 Hudi数据表Archive规范 父主题: DLI Hudi开发规范
修改索引类型会导致表中已有的存量数据与新增数据之间出现数据重复和数据准确性问题。常见的索引类型如下: 布隆索引:Spark引擎独有索引,采用bloomfiter机制,将布隆索引内容写入到Parquet文件的footer中。 Bucket索引:在写入数据过程中,通过主键进行Hash
示例3:使用CTAS将源表的全部数据或部分数据创建新的OBS非分区表 示例说明:根据示例1:创建OBS非分区表中创建的OBS表table1,使用CTAS语法将table1中的数据复制到table1_ctas表中。 在使用CTAS建表的时候,可以忽略被复制的表在建表时所使用的语法,
Hudi支持跨分区进行数据更新,但Global索引性能较差一般不建议使用。 建议 事实表采用日期分区表,维度表采用非分区或者大颗粒度的日期分区 是否采用分区表要根据表的总数据量、增量和使用方式来决定。从表的使用属性看事实表和维度表具有的特点: 事实表:数据总量大,增量大,数据读取多以日期做切分,读取一定时间段的数据。
对比,因此在实时入湖场景中需要选择MOR表模型。 Hudi表名以及列名采用小写字母。 多引擎读写同一张Hudi表时,为了规避引擎之间大小写的支持不同,统一采用小写字母。 建议 Spark批处理场景,对写入时延要求不高的场景,采用COW表。 COW表模型中,写入数据存在写放大问题,
Hudi表使用约束与限制 Hudi支持使用Spark SQL操作Hudi的DDL/DML的语法。但在使用DLI提供的元数据提交SparkSQL作业时,部分直接操作OBS路径的SQL语法暂不支持,详细说明请参考DLI Hudi SQL语法参考。 不支持在HetuEngine中写Hud
SQL作业写Hudi表。 更多具体使用可参考开源社区文档:Hudi。 注意事项 推荐使用SparkSQL统一建表 表名必须满足Hive格式要求 表名必须以字母或下划线开头,不能以数字开头。 表名只能包含字母、数字、下划线。 表名长度不能超过128个字符。 表名中不能包含空格和特殊字符,如冒号、分号、斜杠等。