• [最佳实践] 使用DLI分析OBS数据
    DLI支持将数据存储到OBS上,后续再通过创建OBS表即可对OBS上的数据进行分析和处理。本指导中的操作内容包括:创建OBS表、导入OBS表数据、插入和查询OBS表数据等内容来帮助您更好的在DLI上对OBS表数据进行处理。前提条件已创建OBS的桶。具体OBS操作可以参考《对象存储服务控制台指南》。本指导中的OBS桶名都为“dli-test-021”。已创建DLI的SQL队列。创建队列详细介绍请参考创建队列。注意:创建队列时,队列类型必须要选择为:SQL队列。前期准备创建DLI数据库登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列。在SQL编辑器中输入以下语句创建数据库“testdb”。详细的DLI创建数据库的语法可以参考创建DLI数据库。create database testdb;后续章节操作都需要在testdb数据库下进行操作。DataSource和Hive两种语法创建OBS表的区别两种语法创建OBS表主要差异点参见表1。表1 DataSource语法和Hive语法创建OBS表的差异点语法支持的数据类型范围创建分区表时分区字段差异支持的分区数DataSource语法支持orc,parquet,json,csv,carbon,avro类型创建分区表时,分区字段在表名和PARTITIONED BY后都需要指定。具体可以参考DataSource语法创建单分区OBS表。单表分区数最多允许7000个。Hive语法支持TEXTFILE, AVRO, ORC, SEQUENCEFILE, RCFILE, PARQUET, CARBON创建分区表时,指定的分区字段不能出现在表后,只能通过PARTITIONED BY指定分区字段名和类型。具体可以参考Hive语法创建OBS分区表。单表分区数最多允许100000个。创建OBS表的DataSource语法可以参考使用DataSource语法创建OBS表。创建OBS表的Hive语法可以参考使用Hive语法创建OBS表。使用DataSource语法创建OBS表以下通过创建CSV格式的OBS表举例,创建其他数据格式的OBS表方法类似,此处不一一列举。创建OBS非分区表指定OBS数据文件,创建csv格式的OBS表。按照以下文件内容创建“test.csv”文件,并将“test.csv”文件上传到OBS桶“dli-test-021”的根目录下。Jordon,88,23 Kim,87,25 Henry,76,26登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择“testdb”,执行以下命令创建OBS表。CREATE TABLE testcsvdatasource (name string, id int) USING csv OPTIONS (path "obs://dli-test-021/test.csv");注意:如果是通过指定的数据文件创建的OBS表,后续不支持在DLI通过insert表操作插入数据。OBS文件内容和表数据保持同步。查询已创建的“testcsvdatasource”表数据。select * from testcsvdatasource;查询结果显示如下本地修改原始的OBS表文件“test.csv”,增加一行“Aarn,98,20”数据,重新替换OBS桶目录下的“test.csv”文件。Jordon,88,23 Kim,87,25 Henry,76,26 Aarn,98,20在DLI的SQL编辑器中再次查询“testcsvdatasource”表数据,DLI上可以查询到新增的“Aarn,98,20”数据。select * from testcsvdatasource;指定OBS数据文件目录,创建csv格式的OBS表。指定的OBS数据目录不包含数据文件。在OBS桶“dli-test-021”根目录下创建数据文件目录“data”。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择“testdb”。在DLI的“testdb”数据库下创建OBS表“testcsvdata2source”。CREATE TABLE testcsvdata2source (name STRING, score DOUBLE, classNo INT) USING csv OPTIONS (path "obs://dli-test-021/data");通过insert语句插入表数据。insert into testcsvdata2source VALUES('Aarn','98','20');insert作业运行成功后,查询OBS表“testcsvdata2source”数据。select * from testcsvdata2source;在OBS桶的“obs://dli-test-021/data”目录下刷新后查询,生成了csv数据文件,文件内容为insert插入的数据内容。指定的OBS数据目录包含数据文件。在OBS桶“dli-test-021”根目录下创建数据文件目录“data2”。创建如下内容的测试数据文件“test.csv”,并上传文件到“obs://dli-test-021/data2”目录下。Jordon,88,23 Kim,87,25 Henry,76,26登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择“testdb”。在DLI的“testdb”数据库下创建OBS表“testcsvdata3source”。CREATE TABLE testcsvdata3source (name STRING, score DOUBLE, classNo INT) USING csv OPTIONS (path "obs://dli-test-021/data2");通过insert语句插入表数据。insert into testcsvdata3source VALUES('Aarn','98','20');insert作业运行成功后,查询OBS表“testcsvdata3source”数据。select * from testcsvdata3source;在OBS桶的“obs://dli-test-021/data2”目录下刷新后查询,生成了一个csv数据文件,内容为insert插入的表数据内容。创建OBS分区表创建单分区OBS表在OBS桶“dli-test-021”根目录下创建数据文件目录“data3”。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择“testdb”。在DLI的“testdb”数据库下创建以“classNo”列为分区的OBS分区表“testcsvdata4source”,指定OBS目录“obs://dli-test-021/data3”。CREATE TABLE testcsvdata4source (name STRING, score DOUBLE, classNo INT) USING csv OPTIONS (path "obs://dli-test-021/data3") PARTITIONED BY (classNo);在OBS桶的“obs://dli-test-021/data3”目录下创建“classNo=25”的分区目录。根据以下文件内容创建数据文件“test.csv”,并上传到OBS的“obs://dli-test-021/data3/classNo=25”目录下。Jordon,88,25 Kim,87,25 Henry,76,25在SQL编辑器中执行以下命令,导入分区数据到OBS表“testcsvdata4source ”。ALTER TABLE testcsvdata4source ADD PARTITION (classNo = 25) LOCATION 'obs://dli-test-021/data3/classNo=25';查询OBS表“testcsvdata4source ”classNo分区为“25”的数据:select * from testcsvdata4source where classNo = 25;插入如下数据到OBS表“testcsvdata4source ”:insert into testcsvdata4source VALUES('Aarn','98','25'); insert into testcsvdata4source VALUES('Adam','68','24');查询OBS表“testcsvdata4source ”classNo分区为“25”和“24”的数据。注意:分区表在进行查询时where条件中必须携带分区字段,否则会查询失败,报:DLI.0005: There should be at least one partition pruning predicate on partitioned table。select * from testcsvdata4source where classNo = 25;select * from testcsvdata4source where classNo = 24;在OBS桶的“obs://dli-test-021/data3”目录下点击刷新,该目录下生成了对应的分区文件,分别存放新插入的表数据。图1 OBS上classNo分区为“25”文件数据图2 OBS上classNo分区为“24”文件数据创建多分区OBS表在OBS桶“dli-test-021”根目录下创建数据文件目录“data4”。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择“testdb”。在“testdb”数据库下创建以“classNo”和“dt”列为分区的OBS分区表“testcsvdata5source”,指定OBS目录“obs://dli-test-021/data4”。CREATE TABLE testcsvdata5source (name STRING, score DOUBLE, classNo INT, dt varchar(16)) USING csv OPTIONS (path "obs://dli-test-021/data4") PARTITIONED BY (classNo,dt);给 testcsvdata5source表插入如下测试数据:insert into testcsvdata5source VALUES('Aarn','98','25','2021-07-27'); insert into testcsvdata5source VALUES('Adam','68','25','2021-07-28');根据classNo分区列查询testcsvdata5source数据。select * from testcsvdata5source where classNo = 25;根据dt分区列查询testcsvdata5source数据。select * from testcsvdata5source where dt like '2021-07%';在OBS桶“obs://dli-test-021/data4”目录下刷新后查询,会生成如下数据文件:文件目录1:obs://dli-test-021/data4/xxxxxx/classNo=25/dt=2021-07-27文件目录2:obs://dli-test-021/data4/xxxxxx/classNo=25/dt=2021-07-28在OBS桶的“obs://dli-test-021/data4”目录下创建“classNo=24”的分区目录,再在“classNo=24”目录下创建子分区目录“dt=2021-07-29”。根据以下文件内容创建数据文件“test.csv”,并上传到OBS的“obs://dli-test-021/data4/classNo=24/dt=2021-07-29”目录下。Jordon,88,24,2021-07-29 Kim,87,24,2021-07-29 Henry,76,24,2021-07-29在SQL编辑器中执行以下命令,导入分区数据到OBS表“testcsvdata5source ”。ALTER TABLE testcsvdata5source ADD PARTITION (classNo = 24,dt='2021-07-29') LOCATION 'obs://dli-test-021/data4/classNo=24/dt=2021-07-29';根据classNo分区列查询testcsvdata5source数据。select * from testcsvdata5source where classNo = 24;根据dt分区列查询所有“2021-07”月的所有数据。select * from testcsvdata5source where dt like '2021-07%';使用Hive语法创建OBS表以下通过创建TEXTFILE格式的OBS表举例,创建其他数据格式的OBS表方法类似,此处不一一列举。创建OBS非分区表在OBS桶的“dli-test-021”根目录下创建数据文件目录“data5”。根据以下文件内容创建数据文件“test.txt”并上传到OBS的“obs://dli-test-021/data5”目录下。Jordon,88,23 Kim,87,25 Henry,76,26登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择“testdb”。使用Hive语法创建OBS表,指定OBS文件路径为“obs://dli-test-021/data5/test.txt”,行数据分割符为','。CREATE TABLE hiveobstable (name STRING, score DOUBLE, classNo INT) STORED AS TEXTFILE LOCATION 'obs://dli-test-021/data5' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';说明:ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' :表示每行记录通过',' 进行分隔。查询hiveobstable表数据。select * from hiveobstable;插入表数据:insert into hiveobstable VALUES('Aarn','98','25'); insert into hiveobstable VALUES('Adam','68','25');查询表数据:select * from hiveobstable;在OBS桶“obs://dli-test-021/data5”目录下刷新后查询,生成了两个数据文件,分别对应新插入的数据。创建表字段为复杂数据格式的OBS表在OBS桶的“dli-test-021”根目录下创建数据文件目录“data6”。根据以下文件内容创建数据文件“test.txt”并上传到OBS的“obs://dli-test-021/data6”目录下。Jordon,88-22,23:21 Kim,87-22,25:22 Henry,76-22,26:23登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择“testdb”。使用Hive语法创建OBS表,指定OBS文件路径为“obs://dli-test-021/data6”。CREATE TABLE hiveobstable2 (name STRING, hobbies ARRAY<string>, address map<string,string>) STORED AS TEXTFILE LOCATION 'obs://dli-test-021/data6' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '-' MAP KEYS TERMINATED BY ':';说明:ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' :表示每条记录通过',' 进行分隔。COLLECTION ITEMS TERMINATED BY '-':表示第二个字段hobbies是array形式,元素与元素之间通过'-'分隔。MAP KEYS TERMINATED BY ':':表示第三个字段address是k-v形式,每组k-v内部由':'分隔。查询hiveobstable2表数据。select * from hiveobstable2;创建OBS分区表在OBS桶的“dli-test-021”根目录下创建数据文件目录“data7”。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择“testdb”。创建以classNo为分区列的OBS分区表,指定OBS路径“obs://dli-test-021/data7”。CREATE TABLE IF NOT EXISTS hiveobstable3(name STRING, score DOUBLE) PARTITIONED BY (classNo INT) STORED AS TEXTFILE LOCATION 'obs://dli-test-021/data7' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';注意:创建Hive语法的OBS分区表时,分区字段只能通过PARTITIONED BY指定,该分区字段不能出现在表名后的字段列表中。如下就是错误的示例:CREATE TABLE IF NOT EXISTS hiveobstable3(name STRING, score DOUBLE, classNo INT) PARTITIONED BY (classNo) STORED AS TEXTFILE LOCATION 'obs://dli-test-021/data7';插入表数据:insert into hiveobstable3 VALUES('Aarn','98','25'); insert into hiveobstable3 VALUES('Adam','68','25');查询表数据:select * from hiveobstable3 where classNo = 25;在OBS桶的“obs://dli-test-021/data7”目录下刷新后查询,新生成了分区目录“classno=25”,该分区目录下文件内容为新插入的表数据。在OBS桶的“obs://dli-test-021/data7”目录下,创建分区目录“classno=24”。根据以下文件内容创建文件“test.txt”,并上传该文件到“obs://dli-test-021/data7/classno=24”目录下。Jordon,88,24 Kim,87,24 Henry,76,24在SQL编辑器中执行以下命令,手工导入分区数据到OBS表“hiveobstable3”。ALTER TABLE hiveobstable3 ADD PARTITION (classNo = 24) LOCATION 'obs://dli-test-021/data7/classNo=24';查询表“hiveobstable3”数据。select * from hiveobstable3 where classNo = 24;常见问题问题一:查询OBS分区表报错,报错信息如下:DLI.0005: There should be at least one partition pruning predicate on partitioned table `xxxx`.`xxxx`.;问题根因:查询OBS分区表时没有携带分区字段。解决方案:查询OBS分区表时,where条件中至少包含一个分区字段。问题二:使用DataSource语法指定OBS文件路径创建OBS表,insert数据到OBS表,显示作业运行失败,报:“DLI.0007: The output path is a file, don't support INSERT...SELECT” 错误。问题示例语句参考如下:CREATE TABLE testcsvdatasource (name string, id int) USING csv OPTIONS (path "obs://dli-test-021/data/test.csv");问题根因:创建OBS表指定的OBS路径为具体文件,导致不能插入数据。例如上述示例中的OBS路径为:"obs://dli-test-021/data/test.csv"。解决方案:使用DataSource语法创建OBS表指定的OBS文件路径改为文件目录即可,后续即可通过insert插入数据。上述示例,建表语句可以修改为:CREATE TABLE testcsvdatasource (name string, id int) USING csv OPTIONS (path "obs://dli-test-021/data");问题三:使用Hive语法创建OBS分区表时,提示语法格式不对。例如,如下使用Hive语法创建以classNo为分区的OBS表:CREATE TABLE IF NOT EXISTS testtable(name STRING, score DOUBLE, classNo INT) PARTITIONED BY (classNo) STORED AS TEXTFILE LOCATION 'obs://dli-test-021/data7';问题根因:使用Hive语法创建OBS分区表时,分区字段不能出现在表名后的字段列表中,只能定义在PARTITIONED BY后。解决方案:使用Hive语法创建OBS分区表时,分区字段指定在PARTITIONED BY后。例如:CREATE TABLE IF NOT EXISTS testtable(name STRING, score DOUBLE) PARTITIONED BY (classNo INT) STORED AS TEXTFILE LOCATION 'obs://dli-test-021/data7';
  • [最佳实践] DLI创建连接各外部数据源的增强型跨源连接
    背景信息DLI在创建运行作业需要连接外部其他数据源,如:DLI连接MRS、RDS、CSS、Kafka、DWS时,需要打通DLI和外部数据源之间的网络。DLI增强型跨源连接,底层采用对等连接的方式打通与目的数据源的vpc网络,通过点对点的方式实现数据互通。创建增强型跨源连接网络不通的问题,可以根据本指导的整体流程和步骤进行排查验证。前提条件已创建DLI队列。创建队列详见创建DLI队列操作指导。注意:队列的计费类型需要为:“包年/包月”或“按需计费”时勾选“专属资源模式”才能创建增强型跨源连接。已创建对应的外部数据源集群。具体对接的外部数据源根据业务自行选择。表1 创建各外部数据源参考服务名参考文档链接RDSRDS MySQL快速入门。DWS创建DWS集群。DMS Kafka创建Kafka实例。注意:创建DMS Kafka实例时,不能开启Kafka SASL_SSL。CSS创建CSS集群。MRS创建MRS集群。注意:绑定跨源的DLI队列网段和其他数据源子网网段不能重合。系统default队列不支持创建跨源连接。整体流程创建增强型跨源连接,整体分为以下操作步骤:图1 增强型跨源连接配置流程步骤1:获取外部数据源的内网IP、端口和安全组各数据源信息获取DMS Kafka在Kafka管理控制台,选择“Kafka专享版”,单击对应的Kafka名称,进入到Kafka的基本信息页面。在“连接信息”中获取该Kafka的“内网连接地址”,在“基本信息”的“网络”中获取该实例的“虚拟私有云”和“子网”信息。Kafka的基本信息页面,“网络 > 安全组”参数下获取Kafka的安全组。RDS在RDS控制台“实例管理”页面,单击对应实例名称,查看“连接信息”,获取“内网地址”、“虚拟私有云”、“子网”、“数据库端口”和“安全组”信息。CSS在CSS管理控制台,选择“集群管理”,单击已创建的CSS集群名称,进入到CSS的基本信息页面。在“基本信息”中获取CSS的“内网访问地址”、“虚拟私有云”、“子网”和“安全组”信息,方便后续操作步骤使用。DWS在DWS管理控制台,选择“集群管理”,单击已创建的DWS集群名称,进入到DWS的基本信息页面。在“基本信息”的“数据库属性”中获取该实例的“内网IP”、“端口”,“基本信息”页面的“网络”中获取“虚拟私有云”、“子网”和“安全组”信息,方便后续操作步骤使用。MRS HBase以MRS 3.x版本集群为例。登录MRS管理控制台,单击“集群列表 > 现有集群”,单击对应的集群名称,进入到集群概览页面。在集群概览页面“基本信息”中获取“虚拟私有云”、“子网”和“安全组”。因为在创建连接MRS HBase的作业时,需要用到MRS集群的ZooKeeper实例和端口,则还需要获取MRS集群主机节点信息。参考访问MRS Manager登录MRS Manager,在MRS Manager上,选择“集群 > 待操作的集群名称 > 服务 > ZooKeeper > 实例”,根据“主机名称”和“业务IP”获取ZooKeeper的主机信息。在MRS Manager上,选择“集群 > 待操作的集群名称 > 服务 > ZooKeeper > 配置 > 全部配置”,搜索参数“clientPort”,获取“clientPort”的参数值即为ZooKeeper的端口。使用root用户ssh登录任意一个MRS主机节点。具体请参考登录MRS集群节点。执行以下命令获取MRS对应主机节点的hosts信息,复制保存。cat /etc/hosts例如,查询结果参考如下,将内容复制保存,以备后续步骤使用。步骤2:获取DLI队列网段在DLI管理控制台,单击“队列管理”,选择运行作业的队列,单击队列名称旁的按钮,获取队列的网段信息。步骤3:外部数据源的安全组添加放通DLI队列网段的规则进入到对应数据源的管理控制台,参考步骤1:获取外部数据源的内网IP、端口和安全组获取对应数据源的安全组。登录VPC控制台,单击“访问控制 > 安全组”,单击对应的安全组名称,在“入方向规则”中添加放通队列网段的规则。规则添加为:优先级选为:1,策略选为:允许,协议选择:TCP,端口值不填或者填写为步骤1:获取外部数据源的内网IP、端口和安全组获取的数据源的端口,类型:IPV4,源地址为:步骤2:获取DLI队列网段获取的队列网段,单击“确定”完成安全组规则添加。步骤4:创建增强型跨源连接登录DLI管理控制台,在左侧导航栏单击“跨源管理”,在跨源管理界面,单击“增强型跨源”,单击“创建”。在增强型跨源创建界面,配置具体的跨源连接参数。具体参考如下。连接名称:设置具体的增强型跨源名称。队列:选择DLI的队列。虚拟私有云:选择步骤1:获取外部数据源的内网IP、端口和安全组获取的外部数据源的虚拟私有云。子网:选择步骤1:获取外部数据源的内网IP、端口和安全组获取的外部数据源的子网。其他参数可以根据需要选择配置。参数配置完成后,单击“确定”完成增强型跨源配置。单击创建的跨源连接名称,查看跨源连接的连接状态,等待连接状态为:“已激活”后可以进行后续步骤。如果是连接MRS HBase,则还需要添加MRS的主机节点信息,具体步骤如下:在“跨源管理 > 增强型跨源”中,在已创建的增强型跨源连接的“操作”列,单击“更多 > 修改主机信息”。在“主机信息”参数中,将步骤1:获取外部数据源的内网IP、端口和安全组中获取到的MRS HBase主机节点信息拷贝追加进去。图2 修改主机信息单击“确定”完成主机信息添加。步骤5:测试网络连通性单击“队列管理”,选择操作的队列,在操作列,单击“更多 > 测试地址连通性”。在“测试连通性”界面,根据步骤1:获取外部数据源的内网IP、端口和安全组中获取的数据源的IP和端口,地址栏输入“数据源内网IP:数据源端口”,单击“测试”测试DLI到外部数据源网络是否可达。说明:MRS HBase在测试网络连通性的时候,使用:ZooKeeperIP地址:ZooKeeper端口,或者,ZooKeeper的主机信息:ZooKeeper端口。
  • [最佳实践] 迁移DWS数据至DLI
    本文为您介绍如何通过CDM数据同步功能,迁移数据仓库服务DWS数据至DLI。前提条件已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。注意:创建DLI队列时队列类型需要选择为“SQL队列”。已创建数据仓库服务DWS集群。具体创建DWS集群的操作可以参考创建DWS集群。本示例创建的DWS集群版本为:8.1.1.205。已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。说明:如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。数据源为云上的DWS、MRS等服务时,网络互通需满足如下条件:i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。本示例CDM集群的虚拟私有云、子网以及安全组和DWS集群保持一致。步骤一:数据准备DWS集群上创建数据库和表。参考使用gsql命令行客户端连接DWS集群连接已创建的DWS集群。执行以下命令连接DWS集群的默认数据库“gaussdb”:gsql -d gaussdb -h DWS集群连接地址 -U dbadmin -p 8000 -W password -rgaussdb:DWS集群默认数据库。DWS集群连接地址:请参见获取集群连接地址进行获取。如果通过公网地址连接,请指定为集群“公网访问地址”或“公网访问域名”,如果通过内网地址连接,请指定为集群“内网访问地址”或“内网访问域名”。如果通过弹性负载均衡连接,请指定为“弹性负载均衡地址”。dbadmin:创建集群时设置的默认管理员用户名。-W:默认管理员用户的密码。在命令行窗口输入以下命令创建数据库“testdwsdb”。CREATE DATABASE testdwsdb;执行以下命令,退出gaussdb数据库,连接新创建的数据库“testdwsdb”。\q gsql -d testdwsdb -h DWS集群连接地址 -U dbadmin -p 8000 -W password -r执行以下命令创建表并插入数据。创建表:CREATE TABLE table1(id int, a char(6), b varchar(6),c varchar(6)) ;插入表数据:INSERT INTO table1 VALUES(1,'123','456','789'); INSERT INTO table1 VALUES(2,'abc','efg','hif');查询表数据确认数据插入成功。select * from table1;图1 查询表数据在DLI上创建数据库和表。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列。在编辑器中输入以下语句创建数据库,例如当前创建迁移后的DLI数据库testdb。详细的DLI创建数据库的语法可以参考创建DLI数据库。create database testdb;在“SQL编辑器”中,数据库选择“testdb”,执行以下建表语句创建数据库下的表。详细的DLI建表语法可以参考创建DLI表。create table tabletest(id INT, name1 string, name2 string, name3 string);步骤二:数据迁移配置CDM数据源连接。创建源端DWS数据库的连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据仓库服务(DWS)”,单击“下一步”。配置连接DWS的数据源连接参数,具体参数配置如下。表1 DWS数据源配置参数值名称自定义DWS数据源名称。例如当前配置为:source_dws。数据库服务器单击输入框旁边的“选择”按钮,选择当前已创建的DWS集群名称。端口DWS数据库的端口,默认为:8000。数据库名称当前需要迁移的DWS数据库名称。当前示例为DWS集群上创建数据库和表中创建的数据库“testdwsdb”。用户名待连接数据库的用户。该数据库用户需要有数据表的读写权限,以及对元数据的读取权限。本示例使用创建DWS数据库实例的默认管理员用户“dbadmin”。密码对应的DWS数据库用户的密码。图2 CDM配置DWS数据源其他更多参数保持默认即可,如果需要了解更多参数说明,可以参考配置关系数据库连接。单击“保存”完成DWS数据源连接配置。创建目的端DLI数据源的连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据湖探索(DLI)”,单击“下一步”。图3 创建DLI数据源连接配置目的端DLI数据源连接。具体参数配置可以参考在CDM上配置DLI连接。图4 创建DLI数据源连接配置完成后,单击“保存”完成DLI数据源配置。创建CDM迁移作业。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。在新建作业界面,配置当前作业配置信息,具体参数参考如下:图5 CDM数据迁移作业配置作业名称:自定义数据迁移的作业名称。例如,当前定义为:test。源端作业配置,具体参考如下:表2 源端作业配置参数名参数值源连接名称选择1.a中已创建的数据源名称。使用SQL语句“使用SQL语句”选择“是”时,您可以在这里输入自定义的SQL语句,CDM将根据该语句导出数据。本示例当前选择为“否”。模式或表空间“使用SQL语句”选择“否”时,显示该参数,表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,用户也可以直接输入模式或表空间名称。本示例因为DWS集群上创建数据库和表中没有创建SCHEMA,则本参数为默认的“public”。如果选择界面没有待选择的模式或表空间,请确认对应连接里的帐号是否有元数据查询的权限。说明:说明:该参数支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有数据库。例如:SCHEMA*表示导出所有以“SCHEMA”开头的数据库。*SCHEMA表示导出所有以“SCHEMA”结尾的数据库。*SCHEMA*表示数据库名称中只要有“SCHEMA”字符串,就全部导出。表名待迁移的DWS数据表名。当前为DWS集群上创建数据库和表中的“table1”表。更多详细参数配置请参考配置关系数据库源端参数。目的端作业参数配置,具体参考如下:表3 目的端作业配置参数名参数值目的连接名称选择已创建的DLI数据源连接。资源队列选择已创建的DLI SQL类型的队列。数据库名称选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表创建的数据库名,即为“testdb”。表名选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表创建的表名,即为“tabletest”。导入前清空数据选择导入前是否清空目的表的数据。当前示例选择为“否”。如果设置为是,任务启动前会清除目标表中数据。详细的参数配置可以参考:CDM配置DLI目的端参数。单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。如果字段映射顺序不匹配,可通过拖拽字段调整。如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。CDM支持迁移过程中转换字段内容,详细请参见字段转换。图6 字段映射单击“下一步”配置任务参数,一般情况下全部保持默认即可。该步骤用户可以配置如下可选功能:作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。图7 迁移作业进度和结果查询步骤三:结果查询CDM迁移作业运行完成后,再登录到DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择在DLI上创建数据库和表中已创建的数据库,执行DLI表查询语句,查询DWS表数据是否已成功迁移到DLI的“tabletest”表中。select * from tabletest;图8 查询DLI表数据
  • [最佳实践] 迁移RDS数据至DLI
    本文为您介绍如何通过CDM数据同步功能,迁移关系型数据库RDS数据至DLI。其他关系型数据库数据都可以通过CDM与DLI进行双向同步。前提条件已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。注意:创建DLI队列时队列类型需要选择为“SQL队列”。已创建云数据库RDS的MySQL的数据库实例。具体创建RDS集群的操作可以参考创建RDS MySQL数据库实例。本示例RDS数据库引擎:MySQL本示例RDS MySQL数据库版本:5.7。已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。说明:如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。数据源为云上服务RDS、MRS时,网络互通需满足如下条件:i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。本示例CDM集群的虚拟私有云、子网以及安全组和RDS MySQL实例保持一致。步骤一:数据准备RDS的MySQL的数据库实例上创建数据库和表。登录RDS管理控制台,在“实例管理”界面,选择已创建的MySQL实例,选择操作列的“更多 > 登录”,进入数据管理服务实例登录界面。输入实例登录的用户名和密码。单击“登录”,即可进入MySQL数据库并进行管理。在数据库实例界面,单击“新建数据库”,数据库名定义为:testrdsdb,字符集保持默认即可。在已创建的数据库的操作列,单击“SQL查询”,输入以下创建表语句,创建RDS MySQL表。CREATE TABLE tabletest ( `id` VARCHAR(32) NOT NULL, `name` VARCHAR(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8mb4;插入表数据。insert into tabletest VALUES ('123','abc'); insert into tabletest VALUES ('456','efg'); insert into tabletest VALUES ('789','hij');查询测试的表数据。select * from tabletest;图1 查询RDS表数据在DLI上创建数据库和表。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列。在编辑器中输入以下语句创建数据库,例如当前创建迁移后的DLI数据库testdb。详细的DLI创建数据库的语法可以参考创建DLI数据库。create database testdb;在“SQL编辑器”中,数据库选择“testdb”,执行以下建表语句创建数据库下的表。详细的DLI建表语法可以参考创建DLI表。create table tabletest(id string,name string);步骤二:数据迁移配置CDM数据源连接。创建源端RDS数据库的连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。首次创建RDS MySQL数据库连接时需要上传MySQL的驱动,单击“连接管理 > 驱动管理”,进入驱动管理界面。参考CDM管理驱动下载MySQL的驱动包到本地,将下载后驱动包本地解压,获取驱动的jar包文件。例如,当前下载MySQL驱动包压缩文件为“mysql-connector-java-5.1.48.zip”,解压后获取驱动文件“mysql-connector-java-5.1.48.jar”。返回到驱动管理界面,在驱动名称为MYSQL的操作列,单击“上传”,在“导入驱动文件”界面单击“添加文件”,将1.a.iii获取的驱动文件上传。在驱动管理界面单击“返回”按钮回到连接管理界面,单击“新建连接”,连接器类型选择“云数据库 MySQL”,单击“下一步”。配置连接RDS的数据源连接参数,具体参数配置如下。表1 RDS MySQL数据源配置参数值名称自定义RDS数据源名称。例如当前配置为:source_rds。数据库服务单击输入框旁边的“选择”按钮,选择当前已创建的RDS实例名即可自动关联出来数据库服务器地址。端口RDS实例的端口。选择数据库服务器后自动自动关联。数据库名称当前需要迁移的RDS MySQL数据库名称。当前示例为3中创建的数据库“testrdsdb”。用户名待连接数据库的用户。该数据库用户需要有数据表的读写权限,以及对元数据的读取权限。本示例使用创建RDS MySQL数据库实例的默认用户“root”。密码对应的RDS MySQL数据库用户的密码。其他更多参数保持默认即可,如果需要了解详细参数说明,可以参考配置关系数据库连接。单击“保存”完成RDS MySQL数据源连接配置。图2 CDM配置RDS MySQL数据源创建目的端DLI数据源的连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据湖探索(DLI)”,单击“下一步”。图3 创建DLI数据源连接配置目的端DLI数据源连接。具体参数配置可以参考在CDM上配置DLI连接。图4 创建DLI数据源连接配置完成后,单击“保存”完成DLI数据源配置。创建CDM迁移作业。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。在新建作业界面,配置当前作业配置信息,具体参数参考如下:图5 CDM数据迁移作业配置作业名称:自定义数据迁移的作业名称。例如,当前定义为:rds_to_dli。源端作业配置,具体参考如下:表2 源端作业配置参数名参数值源连接名称选择1.a中已创建的数据源名称。使用SQL语句“使用SQL语句”选择“是”时,您可以在这里输入自定义的SQL语句,CDM将根据该语句导出数据。本示例当前选择为“否”。模式或表空间选择RDS MySQL待迁移的数据库名称。例如当前待迁移的表数据数据库为“testrdsdb”。表名待迁移的RDS MySQL数据表名。当前为4中的“tabletest”表。更多详细参数配置请参考配置关系数据库源端参数。目的端参数配置,具体参考如下:表3 目的端作业配置参数名参数值目的连接名称选择已创建的DLI数据源连接。资源队列选择已创建的DLI SQL类型的队列。数据库名称选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表创建的数据库名,即为“testdb”。表名选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表创建的表名,即为“tabletest”。导入前清空数据选择导入前是否清空目的表的数据。当前示例选择为“否”。如果设置为是,任务启动前会清除目标表中数据。详细的参数配置可以参考:CDM配置DLI目的端参数。单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。如果字段映射顺序不匹配,可通过拖拽字段调整。如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。CDM支持迁移过程中转换字段内容,详细请参见字段转换。图6 字段映射单击“下一步”配置任务参数,一般情况下全部保持默认即可。该步骤用户可以配置如下可选功能:作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。图7 迁移作业进度和结果查询步骤三:结果查询CDM迁移作业运行完成后,再登录到DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择在DLI上创建数据库和表已创建的数据库,执行DLI表查询语句,查询RDS MySQL表数据是否已成功迁移到DLI的“tabletest”表中。select * from tabletest;图8 查询DLI表数据
  • [最佳实践] 迁移Elasticsearch数据至DLI
    本文为您介绍如何通过CDM数据同步功能,迁移Elasticsearch类型的CSS集群数据至DLI。其他自建的Elasticsearch等服务数据,均可以通过CDM与DLI进行双向同步。前提条件已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。注意:创建DLI队列时队列类型需要选择为“SQL队列”。已创建Elasticsearch类型的CSS集群。具体创建CSS集群的操作可以参考创建CSS集群。本示例创建的CSS集群版本为:7.6.2,集群为非安全集群。已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。说明:如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。数据源为云上的CSS服务时,网络互通需满足如下条件:i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。本示例CDM集群的虚拟私有云、子网以及安全组和创建的CSS集群保持一致。步骤一:数据准备CSS集群上创建索引并导入数据。登录CSS管理控制台,选择“集群管理 > Elasticsearch”。在集群管理界面,在已创建的CSS集群的“操作”列,单击“Kibana”访问集群。在Kibana的左侧导航中选择“Dev Tools”,进入到Console界面。在Console界面,执行如下命令创建索引“my_test”。PUT /my_test { "settings": { "number_of_shards": 1 }, "mappings": { "properties": { "productName": { "type": "text", "analyzer": "ik_smart" }, "size": { "type": "keyword" } } } }在Console界面,执行如下命令,将数据导入到“my_test”索引中。POST /my_test/_doc/_bulk {"index":{}} {"productName":"2017秋装新款文艺衬衫女装","size":"L"} {"index":{}} {"productName":"2017秋装新款文艺衬衫女装","size":"M"} {"index":{}} {"productName":"2017秋装新款文艺衬衫女装","size":"S"} {"index":{}} {"productName":"2018春装新款牛仔裤女装","size":"M"} {"index":{}} {"productName":"2018春装新款牛仔裤女装","size":"S"} {"index":{}} {"productName":"2017春装新款休闲裤女装","size":"L"} {"index":{}} {"productName":"2017春装新款休闲裤女装","size":"S"}当返回结果信息中“errors”字段的值为“false”时,表示导入数据成功。在DLI上创建数据库和表。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列。在编辑器中输入以下语句创建数据库,例如当前创建迁移后的DLI数据库testdb。详细的DLI创建数据库的语法可以参考创建DLI数据库。create database testdb;创建数据库下的表。详细的DLI建表语法可以参考创建DLI表。create table tablecss(size string, productname string);步骤二:数据迁移配置CDM数据源连接。配置源端CSS的数据源连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“云搜索服务”,单击“下一步”。图1 创建CSS数据源配置源端CSS的数据源连接,具体参数配置如下。详细参数配置可以参考CDM上配置CSS连接。表1 CSS数据源配置参数值名称自定义CSS数据源名称。例如当前配置为“source_css”。Elasticsearch服务器列表单击输入框旁边的“选择”按钮,选择当前CSS集群即可自动关联出来Elasticsearch服务器列表。安全模式认证如果所需连接的CSS集群在创建时开启了“安全模式”,该参数需设置为“是”,否则设置为“否”。本示例选择为“否”。图2 CDM配置CSS数据源单击“保存”完成CSS数据源配置。配置目的端DLI的数据源连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据湖探索(DLI)”,单击“下一步”。图3 创建DLI数据源连接配置目的端DLI数据源连接连接参数。具体参数配置可以参考在CDM上配置DLI连接。图4 配置DLI数据源连接参数配置完成后,单击“保存”完成DLI数据源配置。创建CDM迁移作业。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。在新建作业界面,配置当前作业配置信息,具体参数参考如下:图5 新建CDM作业作业配置作业名称:自定义数据迁移的作业名称。例如,当前定义为:css_to_dli。源端作业配置,具体参考如下:表2 源端作业配置参数名参数值源连接名称选择1.a中已创建的数据源名称。索引选择CSS集群中创建的Elasticsearch索引名。当前示例为CSS集群上创建索引并导入数据中创建的索引“my_test”。索引名称只能全部小写,不能有大写。类型Elasticsearch的类型,类似关系数据库中的表名称。类型名称只能全部小写,不能有大写。当前示例为:“_doc”。更多其他参数说明可以参考:CDM配置CSS源端参数。目的端作业配置,具体参考如下:表3 目的端作业配置参数名参数值目的连接名称选择1.b已创建的DLI数据源连接。资源队列选择已创建的DLI SQL类型的队列。数据库名称选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表中创建的数据库名,即为“testdb”。表名选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表中创建的表名,即为“tablecss”。导入前清空数据选择导入前是否清空目的表的数据。当前示例选择为“否”。如果设置为是,任务启动前会清除目标表中数据。详细的参数配置可以参考:CDM配置DLI目的端参数。单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。如果字段映射顺序不匹配,可通过拖拽字段调整。如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。CDM支持迁移过程中转换字段内容,详细请参见字段转换。图6 字段映射单击“下一步”配置任务参数,一般情况下全部保持默认即可。该步骤用户可以配置如下可选功能:作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。图7 迁移作业进度和结果查询步骤三:结果查询CDM迁移作业运行完成后,再登录到DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择已1中已创建的数据库,执行DLI表查询语句,查询CSS的数据是否已成功迁移到DLI的“tablecss”表中。select * from tablecss;图8 迁移后查询DLI的表数据
  • [最佳实践] 迁移Kafka数据至DLI
    本文为您介绍如何通过CDM数据同步功能,迁移MRS Kafka数据至DLI。其他DMS Kafka或者Apache Kafka等服务数据,均可以通过CDM与DLI进行双向同步。前提条件已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。注意:创建DLI队列时队列类型需要选择为“SQL队列”。已创建包含Kafka组件的MRS安全集群。具体创建MRS集群的操作可以参考创建MRS集群。本示例创建的MRS集群版本为:MRS 3.1.0。本示例创建的MRS集群开启了Kerberos认证。已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。创建CDM集群完成后,还需要提交工单开通迁移MRS Kafka数据到DLI的白名单,否则在CDM配置迁移作业时目的端配置查找不到DLI。说明:如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。数据源为云上的MRS、DWS时,网络互通需满足如下条件:i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。本示例CDM集群的虚拟私有云、子网以及安全组和创建的MRS集群保持一致。步骤一:数据准备MRS集群上创建Kafka的Topic并且向Topic发送消息。参考访问MRS Manager登录MRS Manager。在MRS Manager上,选择“系统 > 权限 > 用户”,单击“添加用户”,在添加用户页面分别配置如下参数。用户名:自定义的用户名。当前示例输入为:testuser2。用户类型:当前选择为“人机”。密码和确认密码:输入当前用户名对应的密码。用户组和主组:选择kafkaadmin。角色:选择Manager_viewer角色。图1 MRS Manager上创建Kafka用户在MRS Manager上,选择“集群 > 待操作的集群名称 > 服务 > ZooKeeper > 实例”,获取ZooKeeper角色实例的IP地址,为后续步骤做准备。在MRS Manager上,选择“集群 > 待操作的集群名称 > 服务 > kafka > 实例”,获取kafka角色实例的IP地址,为后续步骤做准备。参考安装MRS客户端下载并安装Kafka客户端。例如,当前Kafka客户端安装在MRS主机节点的“/opt/kafkaclient”目录上。以root用户进入客户端安装目录下。例如:cd /opt/kafkaclient执行以下命令配置环境变量。source bigdata_env因为当前集群启用了Kerberos认证,则需要执行以下命令进行安全认证。认证用户为2中创建的用户。kinit 2中创建的用户名例如,kinit testuser2执行以下命令创建名字为kafkatopic的Kafka Topic。kafka-topics.sh --create --zookeeper ZooKeeper角色实例所在节点IP地址1:2181,ZooKeeper角色实例所在节点IP地址2:2181,ZooKeeper角色实例所在节点IP地址3:2181/kafka --replication-factor 1 --partitions 1 --topic kafkatopic上述命令中的“ZooKeeper角色实例所在节点IP地址”即为3中获取的ZooKeeper实例IP。执行以下命令向kafkatopic发送消息。kafka-console-producer.sh --broker-list Kafka角色实例所在节点的IP地址1:21007,Kafka角色实例所在节点的IP地址2:21007,Kafka角色实例所在节点的IP地址3:21007 --topic kafkatopic --producer.config /opt/kafkaclient/Kafka/kafka/config/producer.properties上述命令中的“Kafka角色实例所在节点的IP地址”即为4中获取的Kafka实例IP。发送测试消息内容如下:{"PageViews":5, "UserID":"4324182021466249494", "Duration":146,"Sign":-1}在DLI上创建数据库和表。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列。在编辑器中输入以下语句创建数据库,例如当前创建迁移后的DLI数据库testdb。详细的DLI创建数据库的语法可以参考创建DLI数据库。create database testdb;创建数据库下的表。详细的DLI建表语法可以参考创建DLI表。CREATE TABLE testdlitable(value STRING);步骤二:数据迁移配置CDM数据源连接。配置源端MRS Kafka的数据源连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“MRS Kafka”,单击“下一步”。图2 创建MRS Kafka数据源配置源端MRS Kafka的数据源连接,具体参数配置如下。表1 MRS Kafka数据源配置参数值名称自定义MRS Kafka数据源名称。例如当前配置为“source_kafka”。Manager IP单击输入框旁边的“选择”按钮,选择当前MRS Kafka集群即可自动关联出来Manager IP。用户名在2中创建的MRS Kafka用户名。密码对应MRS Kafka用户名的密码。认证类型如果当前MRS集群为普通集群则选择为SIMPLE,如果是MRS集群启用了Kerberos安全认证则选择为KERBEROS。本示例选择为:KERBEROS。更多参数的详细说明可以参考CDM上配置Kafka连接。图3 CDM配置MRS Kafka数据源连接单击“保存”完成MRS Kafka数据源配置。配置目的端DLI的数据源连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据湖探索(DLI)”,单击“下一步”。图4 创建DLI数据源连接配置目的端DLI数据源连接连接参数。具体参数配置可以参考在CDM上配置DLI连接。图5 配置DLI数据源连接参数配置完成后,单击“保存”完成DLI数据源配置。创建CDM迁移作业。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。在新建作业界面,配置当前作业配置信息,具体参数参考如下:图6 新建CDM作业作业配置作业名称:自定义数据迁移的作业名称。例如,当前定义为:test。源端作业配置,具体参考如下:表2 源端作业配置参数名参数值源连接名称选择1.a中已创建的数据源名称。Topics选择MRS Kafka待迁移的Topic名称,支持单个或多个Topic。当前示例为:kafkatopic。数据格式根据实际情况选择当前消息格式。本示例选择为:CDC(DRS_JSON),以DRS_JSON格式解析源数据。偏移量参数从Kafka拉取数据时的初始偏移量。本示例当前选择为:最新。最新:最大偏移量,即拉取最新的数据。最早:最小偏移量,即拉取最早的数据。已提交:拉取已提交的数据。时间范围:拉取时间范围内的数据。是否持久运行用户自定义是否永久运行。当前示例选择为:否。拉取数据超时时间持续拉取数据多长时间超时,单位分钟。当前示例配置为:15。等待时间可选参数,超出等待时间还是无法读取到数据,则不再读取数据,单位秒。当前示例不配置该参数。消费组ID用户指定消费组ID。当前使用MRS Kafka默认的消息组ID:“example-group1”。其他参数的详细配置说明可以参考:CDM配置Kafka源端参数。目的端作业配置,具体参考如下:表3 目的端作业配置参数名参数值目的连接名称选择1.b已创建的DLI数据源连接。资源队列选择已创建的DLI SQL类型的队列。数据库名称选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表中创建的数据库名,即为“testdb”。表名选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表中创建的表名,即为“testdlitable”。导入前清空数据选择导入前是否清空目的表的数据。当前示例选择为“否”。如果设置为是,任务启动前会清除目标表中数据。详细的参数配置可以参考:CDM配置DLI目的端参数。单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。如果字段映射顺序不匹配,可通过拖拽字段调整。如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。CDM支持迁移过程中转换字段内容,详细请参见字段转换。图7 字段映射单击“下一步”配置任务参数,一般情况下全部保持默认即可。该步骤用户可以配置如下可选功能:作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。图8 迁移作业进度和结果查询步骤三:结果查询CDM迁移作业运行完成后,再登录到DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择已1已创建的数据库,执行DLI表查询语句,查询Kafka数据是否已成功迁移到DLI的“testdlitable”表中。select * from testdlitable;
  • [最佳实践] 迁移Hive数据至DLI
    本文为您介绍如何通过CDM数据同步功能,迁移MRS Hive数据至DLI。其他MRS Hadoop组件数据,均可以通过CDM与DLI进行双向同步。前提条件已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。注意:创建DLI队列时队列类型需要选择为“SQL队列”。已创建包含Hive组件的MRS安全集群。创建MRS集群的操作详细可以参考创建MRS集群。本示例创建的MRS集群和各组件版本如下:MRS集群版本:MRS 3.1.0Hive版本:3.1.0Hadoop版本:3.1.1本示例创建MRS集群时开启了Kerberos认证。已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。说明:如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。数据源为云上的MRS、DWS等服务时,网络互通需满足如下条件:i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。本示例CDM集群的虚拟私有云、子网以及安全组和MRS集群保持一致。步骤一:数据准备MRS集群上创建Hive表和插入表数据。参考访问MRS Manager登录MRS Manager。在MRS Manager上,选择“系统 > 权限 > 角色”,单击添加“角色”,在添加角色页面分别配置参数。角色名称:输入自定义的“角色名称”,例如当前输入为:hivetestrole。配置资源权限:选择“当前MRS集群的名称 > hive”,勾选“Hive管理员权限”。图1 Manager创建Hive的角色更多MRS创建角色的操作说明可以参考:创建Hive管理员角色。在MRS Manager上,选择“系统 > 权限 > 用户”,单击“添加用户”,在添加用户页面分别配置如下参数。用户名:自定义的用户名。当前示例输入为:hivetestusr。用户类型:当前选择为“人机”。密码和确认密码:输入当前用户名对应的密码。用户组和主组:选择supergroup角色:同时选择2中创建的角色和Manager_viewer角色。图2 MRS Manager上创建Hive用户参考安装MRS客户端下载并安装Hive客户端。例如,当前Hive客户端安装在MRS主机节点的“/opt/hiveclient”目录上。以root用户进入客户端安装目录下。例如:cd /opt/hiveclient执行以下命令配置环境变量。source bigdata_env因为当前集群启用了Kerberos认证,则需要执行以下命令进行安全认证。认证用户为3中创建的用户。kinit 3中创建的用户名例如,kinit hivetestusr执行以下命令连接Hive。beeline创建表和插入表数据。创建表:create table user_info(id string,name string,gender string,age int,addr string);插入表数据:insert into table user_info(id,name,gender,age,addr) values("12005000201","A","男",19,"A城市"); insert into table user_info(id,name,gender,age,addr) values("12005000202","B","男",20,"B城市"); insert into table user_info(id,name,gender,age,addr) values("12005000202","B","男",20,"B城市");说明:上述示例是通过创建表和插入表数据构造迁移示例数据。如果是迁移已有的Hive数据库和表数据,则可以通过以下命令获取Hive的数据库和表信息。在Hive客户端执行如下命令获取数据库信息show databases切换到对应的数据库下use Hive数据库名显示当前数据库下所有的表信息show tables查询Hive表的建表语句show create table Hive表名查询出来的建表语句需要做一些处理,再到具体的DLI上执行。在DLI上创建数据库和表。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列。在编辑器中输入以下语句创建数据库,例如当前创建迁移后的DLI数据库testdb。详细的DLI创建数据库的语法可以参考创建DLI数据库。create database testdb;创建数据库下的表。create table user_info(id string,name string,gender string,age int,addr string);说明:如果是通过在MRS Hive中的“show create table hive表名”获取的建表语句,则需要修改该建表语句以符合DLI的建表语法。具体DLI的建表语法可以参考创建DLI表。步骤二:数据迁移配置CDM数据源连接。配置源端MRS Hive的数据源连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“MRS Hive”,单击“下一步”。图3 创建MRS Hive数据源连接配置源端MRS Hive的数据源连接,具体参数配置如下。表1 MRS Hive数据源配置参数值名称自定义MRS Hive数据源名称。例如当前配置为:source_hiveManager IP单击输入框旁边的“选择”按钮,选择当前MRS Hive集群即可自动关联出来Manager IP。认证类型如果当前MRS集群为普通集群则选择为SIMPLE,如果是MRS集群启用了Kerberos安全认证则选择为KERBEROS。本示例选择为:KERBEROS。Hive版本根据当前创建MRS集群时候的Hive版本确定。当前Hive版本为3.1.0,则选择为:HIVE_3_X。用户名在3中创建的MRS Hive用户名。密码对应的MRS Hive用户名的密码。其他参数保持默认即可。更多参数的详细说明可以参考CDM上配置Hive连接。图4 CDM配置MRS Hive数据源单击“保存”完成MRS Hive数据源配置。配置目的端DLI的数据源连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据湖探索(DLI)”,单击“下一步”。图5 创建DLI数据源连接配置目的端DLI数据源连接连接参数。具体参数配置可以参考在CDM上配置DLI连接。图6 配置DLI数据源连接参数配置完成后,单击“保存”完成DLI数据源配置。创建CDM迁移作业。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。在新建作业界面,配置当前作业配置信息,具体参数参考如下:图7 新建CDM作业作业配置作业名称:自定义数据迁移的作业名称。例如,当前定义为:hive_to_dli。源端作业配置,具体参考如下:表2 源端作业配置参数名参数值源连接名称选择1.a中已创建的数据源名称。数据库名称选择MRS Hive待迁移的数据库名称。例如当前待迁移的表数据数据库为“default”。表名待建议Hive数据表名。当前示例为在DLI上创建数据库和表中的“user_info”表。读取方式当前示例选择为:HDFS。具体参数含义如下:包括HDFS和JDBC两种读取方式。默认为HDFS方式,如果没有使用WHERE条件做数据过滤及在字段映射页面添加新字段的需求,选择HDFS方式即可。HDFS文件方式读取数据时,性能较好,但不支持使用WHERE条件做数据过滤及在字段映射页面添加新字段。JDBC方式读取数据时,支持使用WHERE条件做数据过滤及在字段映射页面添加新字段。更多参数的详细配置可以参考:CDM配置Hive源端参数。目的端作业配置,具体参考如下:表3 目的端作业配置参数名参数值目的连接名称选择1.b已创建的DLI数据源连接。资源队列选择已创建的DLI SQL类型的队列。数据库名称选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表中创建的数据库名,即为“testdb”。表名选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表中创建的表名,即为“user_info”。导入前清空数据选择导入前是否清空目的表的数据。当前示例选择为“否”。如果设置为是,任务启动前会清除目标表中数据。更多参数的详细配置可以参考:CDM配置DLI目的端参数。单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。如果字段映射顺序不匹配,可通过拖拽字段调整。如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。CDM支持迁移过程中转换字段内容,详细请参见字段转换。图8 字段映射单击“下一步”配置任务参数,一般情况下全部保持默认即可。该步骤用户可以配置如下可选功能:作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。图9 迁移作业进度和结果查询步骤三:结果查询CDM迁移作业运行完成后,再登录到DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择已1已创建的数据库,执行DLI表查询语句,查询Hive表数据是否已成功迁移到DLI的“user_info”表中。select * from user_info;图10 迁移后查询DLI的表数据
  • [问题求助] 【数据可视化DLV】【数据连接是数据湖探索DLT】利用SQL语句查询时仅能传回50条数据??
    【操作步骤&问题现象】1、利用SQL语句查询时仅能传回50条数据,为什么返回不全呢?大家知道怎么解决吗?【截图信息】这个地图上仅有50个国家显示了信息,其他国家的信息未返回过来,显示不全。直接在数据湖探索里面编辑SQL查询语句是查询正常的,有一百多个国家。
  • [认证交流] 微认证 - 大数据板块 -《使用DLI Flink SQL进行电商实时业务数据分析开发》 - 学习分享
    什么是微认证?          华为云微认证是基于线上学习与在线实践,快速获得场景化技能提升的认证。微认证清单 - 大数据使用DLI Flink SQL进行电商实时业务数据分析开发     课程简介:电商通常有web,小程序等多种接入方式,为掌握其实时变化,需统计各平台的实时访问量、订单数等,从而针对性地调整营销策略。     课程结构:电商实时业务应用场景介绍8认识电商常用的实时业务特点及应用电商实业业务对应大数据技术组件的原理47了解实现电商网站数据实时计算的相关大数据技术特性及原理华为云实时流计算Flink及解决方案7掌握华为云实时流计算Flink及解决方案及相应应用华为云实战案例15掌握华为云实时流计算Flink验流程及开发思路     1、电商实时业务应用场景介绍          电商从2009年发展至今,当前线上购物无疑是最火热的购物方式,而电商平台则又可以以多种方式接入,例如通过web方式访问、通过app的方式访问、通过微信小程序的方式访问等等。电商平台则需要每天统计各平台的实时访问数据量、订单数、访问人数等等          指标,从而能在显示大屏上实时展示相关数据,方便及时了解数据变化,有针对性地调整营销策略。这些高效快捷地统计指标是如何获得的呢?这是我们这次课程及实验所需要理解学习的          当前有很多电商的大数据平台会将每个商品的订单信息实时写入Kafka中,这些信息包括订单ID、订单生成的渠道(即web方式、app方式等)、订单时间、订单金额、折扣后实际支付金额、支付时间、用户ID、用户姓名、订单地区ID等信息。          针对业务场景,我们在大数据分析业务需要做的,就是根据当前可以获取到的业务数据,实时统计每种渠道的相关指标,输出存储到数据库中,并进行大屏展示。     2、电商实时业务对应大数据技术组件的原理        (1)流计算                概述         流式计算就像汽车过收费站,每一个车在通过闸口时都要收费。流式计算中每个实时产生的数据都要被实时的处理。        流计算秉承一个基本理念,即数据的价值随着时间的流逝而降低,如用户点击流。因此,当事件出现时就应该立即进行处理,而不是缓存起来进行离线处理。为了及时处理流数据,就需要一个低延迟、可扩展、高可靠的处理引擎。                应用场景                主要框架       Kafka        Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeepert办调的分布式日志系统。       主要应用场景是:日志收集系统和消息系统。        分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。大部分的消息系统选用发布-订阅模式。       Kafka就是一种发布-订阅模式。 Spark                Spark简介          2009年诞生于美国加州大学伯克利分校AMP实验室。          Apache Spark是一种基于内存的快速、通用、可扩展的大数据计算引擎。          Spark 是一站式解决方案,集批处理(Spark Core )、实时流处理(Spark Streaming )、交互式查询(Spark SQL )、图计算(GraphX )与机器学习(MLLib )于一体。                  Spark应用场景           批处理可用于ETL (抽取、转换、加载)。          机器学习可用于自动判断淘宝的买家评论是好评还是差评。          交互式分析可用于查询Hive数据仓库。          流处理可用于页面点击流分析,推荐系统,舆情分析等实时业务。                 Spark架构                Spark特点                       SparkStreaming          Spark Streaming的基本原理是将实时输入数据流以时间片(秒级)为单位进行拆分,然后经Spark引擎以类似批处理的方式处理每个时间片数据。        Flink华为云数据可视化DLI          产品概述数据湖探索(Data Lake Insight,简称DLI)是完全兼容Apache Spark和Apache Flink生态,实现批流一体的Serverless大数据计算分析服务。DLI支持多模引擎,企业仅需使用SQL或程序就可轻松完成异构数据源的批处理、流处理、内存计算、机器学习等,挖掘和探索数据价值。          特点          应用场景:电商行业数据可视化          概述            广义:指一切能够把抽象、枯燥或难以理解的内容,包括看似毫无意义的数据、信息、知识等以一种容易理解的视觉方式展示出来的技术。            狭义:利用计算机图形学和图像处理技术,将数据转换为图形或图像在屏幕上显示出来,并进行各种交互处理的理论、方法和技术。          发展          工具        华为云数据可视化DLV          概述         数据可视化(Data Lake Visualization,简称DLV)是一站式数据可视化开发平台,适配云上云下多种数据源,提供丰富多样的2D、3D可视化组件,采用拖搜式自由布局。          特点          应用场景:某企业安全态势感知     3、华为云实时流计算Flink及解决方案        基于实时流计算的可视化解决方案        解决方案应用场景之智慧城市          智慧城市是通过对大量实时数据的监控、采集和处理,为复杂问题做出快速响应。智慧城市涉及范围很广,智慧城市建设主要包括政务、交通、企业、民生等方面。         解决方案应用场景之实时推荐          根据用户行为数据(包含历史数据和实时数据),通过构建的推荐模型对用户行为秒级调整并生成对应的推荐列表,分钟级更新候选集。          实时推荐主要包括广告推荐、商品推荐、视频推荐、游戏推荐等。     动手实验:         流程介绍 实验单独学习链接:华为云原生大数据serverless服务DLI_在线课程_华为云开发者学堂_云计算培训-华为云 (huaweicloud.com)
  • [指导教程] DLI连接PowerBI Desktop实践指南
    **1. 需求描述** Power BI,是由微软推出的一套商业智能(BI)应用,它支持连接本地、或数据库的数据源,挖掘数据中的信息,快速准确地生成可以交互的可视化报表,从而帮助业务经营决策。海外的客户PowerBI使用率很高,经常会遇到PowerBI连接华为云DLI(DLI表或OBS表均可)的需求。想要实现Power BI Report Builder或者PowerBI Desktop连接华为云DLI数据湖探索服务,需要安装一个ODBC驱动。 而在项目中实测发现,DLI当前提供的是32bit ODBC驱动,而大部分客户PowerBI工具都是用64bit,这就会在PowerBI连接ODBC时出现如下报错提示: Details: "ODBC: ERROR [IM014] The specified DSN contains an architecture mismatch between the Driver (32-bit) and Application (64-bit)" **2. 解决方案** 针对此问题,我们解决方案有二: (1) 把PowerBI Desktop换成32bit安装包; (2) 安装PowerBI Gateway组件,可实现64bit PowerBI连接32bit ODBC数据源; PowerBI Desktop拉取数据和建模转换时会消耗内存,但大部分中小客户对此要求不高,所以在满足PowerBI性能的前提下,可把PowerBI Desktop改造成32bit。下文通过第一种方案,展示PowerBI连接DLI的全过程。如有小伙伴想尝试第二种方案,则可参考https://docs.microsoft.com/en-us/power-bi/paginated-reports/paginated-reports-odbc-support 首先参照此文档安装DLI ODBC驱动 https://support.huaweicloud.com/devg-dli/dli_09_0128.html 文档上内容比较详尽,此处不一一赘述,最后的“示例代码”部分请忽略。 我测试的配置DLI ODBC驱动配置如下:(注意圆框高亮部分要跟DLI实例进行匹配) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/14/1647257742003216923.png) DLI的库和SQL队列环境如下: ![1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/14/1647258055159945864.png) ![2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/14/1647258315849759929.png) 如下是PowerBI Desktop 32bit关键步骤参考: 打开PowerBI Desktop - Landing Page选择"Get Data",搜索ODBC连接方式,选择刚创建好的User DSN: ![3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/14/1647258580910293824.png) 初次连接仍需输入名和密码进行认证,这里就输入华为云登录账户(主账户或者IAM用户)的用户名和密码即可,如果连接成功则会实时到DLI中拉表的数据:(如果表很大则需要点时间加载,尤其线下PowerBI Desktop连接华为云DLI的场景,请耐心等候哦~~) ![4.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/14/1647258610921401054.png) 根据需要进行表的数据转换或者直接Load到PowerBI中: ![5.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/14/1647258650509144603.png) 接下来就可以愉快的进行PowerBI的设计工作啦,进行专业的BI和报表的设计~~
  • [业务动态] 关于《使用DLI Flink SQL进行电商实时业务数据分析》微认证正式上线的预通知
    尊敬的微认证客户:您好!为帮助您深入了解华为云产品,探索新的技术场景,我们非常高兴地与您分享一个好消息:由华为资深研发团队精心打磨,潜心研发的新微认证《使用DLI Flink SQL进行电商实时业务数据分析》将于2021年12月31日正式上线!届时请进入华为云培训中心-微认证-大数据 查看产品详情,体验使用,我们非常期待您的宝贵建议。以下为该微认证详情,您可提前了解:产品名称: 《使用DLI Flink SQL进行电商实时业务数据分析开发》适合人群: 向大数据转型的运维软件开发人员和对大数据应用开发感兴趣的社会大众;培训方案: 基于电商实时业务应用场景,完成Flink对实时数据采集及计算的应用开发实践;技术能力: 实时数据采集及计算引擎Flink的应用开发流程;认证价值: 实时数据采集及计算引擎Flink的应用开发,通过实践提升大数据应用开发能力。届时我们还将开展相关微认证上新活动,详情请关注华为云培训中心论坛-热门活动 相关通知。发布日期:2021年12月28日
  • [问题求助] 【DLI产品】【DLI python SDK功能】DLI python SDK 是否支持通过DliClient插入数据?
    【功能模块】DLI python SDK 是否支持通过DliClient插入数据?【操作步骤&问题现象】1、想在python代码里操作dli数据表,目前看到的例子没有插入数据【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [活动打卡] 【大数据全栈成长计划】《华为云原生大数据serverless服务DLI》课后操作任务打卡贴
    此贴为《华为云原生大数据serverless服务DLI》课后操作任务打卡专用查看更多操作任务请点击:》》点击前往《《查看全部活动任务&信息请点击:》》点击前往《《按要求完成考核打卡可获得活动积分  +20积分》》参与活动前请先点击这里报名活动《《本实验逻辑ecs用来模拟数据流流式数据通过kafka接入DLI进行流式数据分析DLI分析后的数据结果存在rds参与考核中可能会存在使用产品的情况,请提前领取课程专属免费试用:(1)https://activity.huaweicloud.com/Date-free.html(2)https://activity.huaweicloud.com/free_test/index.html领取时请注意数据中心节点与实验要求一致!!!推荐  华南-广州 实验请联系小助手开通白名单提供信息:截图中的 我的凭证-API凭证-项目ID&所属区域【项目ID】↓联系小助手企业微信↓ 操作考核方式:《华为云原生大数据serverless服务DLI》课后操作任务用户前往 》》课程报名《《 课程,并按照操作文档进行操作,按照指导完成实验,最后按照要求截图+华为云账号回复至本帖内,视为完成任务。在步骤6中项目名称使用此贴右上角华为云账号昵称需要截图截出步骤7中的结果,并显示用户名称,无名称则无效将截图回复至本帖活动规则:a. 回复非按要求的图片,视为无效楼层。b.按照规定完成打,并按照规定将帖子截图回复到本帖可获得20积分课程积分完成三个操作任务并对应回复截图后,可获得实体证书请在此问卷中登记信息:https://devcloud.huaweicloud.com/expertmobile/qtn?id=bcdc4692db4a48f5808bce295ebd0666更多活动信息请查看:https://bbs.huaweicloud.com/forum/thread-166386-1-1.html
  • [问题求助] 【DLI产品】【分析结果导出功能】一句话描述问题:DLI的分析结果能否直接导出? 导出之后的格式是什么?
    【功能模块】DLI导出功能咨询【操作步骤&问题现象】DLI的分析结果能否直接导出?  导出之后的格式是什么?【截图信息】NA【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【香港启德】【DLI功能】目前测试环境正常使用,担心正式环境能否使用
    【功能模块】DLI功能-作业管理-Flink作业【操作步骤&问题现象】1、目前测试环境 正常使用 网页编辑Flinksql脚本执行2、担心去正式环境 无法正常使用或者变成其他转义版本执行(如java等),增加不必要的开发内容【截图信息】麻烦确认下,正式环境是否可以 跟测试环境一样 可以网页使用flinksql开发,没有其他额外开发内容【日志信息】(可选,上传日志内容或者附件)
总条数:70 到第
上滑加载中