日志数据投递MaxCompute最佳实践

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
DataWorks Serverless资源组免费试用套餐,300CU*H 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 日志服务采集到日志后,有时需要将日志投递至MaxCompute的表中进行存储与分析。本文主要向用户介绍将数据投递到MaxCompute完整流程,方便用户快速实现数据投递至MaxCompute。

日志服务采集到日志后,有时需要将日志投递至MaxCompute的表中进行存储与分析。本文主要向用户介绍将数据投递到MaxCompute完整流程,方便用户快速实现数据投递至MaxCompute。

说明

本文描述不做特殊说明,默认都是使用RAM账户登录控制台。更多创建或获取RAM用户信息操作,请参见准备RAM用户。

步骤一 创建RAM角色

说明

如果使用默认角色,可以跳过这一步。

  1. 登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 角色

  3. 角色页面,单击创建角色

    image.png
  4. 创建角色面板,选择可信实体类型为阿里云服务,然后单击下一步image.png

  5. 配置角色配置向导中,配置如下内容,然后单击完成image.png

    参数

    说明

    角色类型

    选择普通角色类型

    角色名称

    输入角色名称,例如aliyunlogreadrole。

    备注

    输入创建角色的备注信息。

    选择受信服务

    选择日志服务

步骤二 授予RAM角色读取Logstore数据的权限

说明
  •  如果使用默认角色AliyunLogDefaultRole,可以跳过这一步。

  •  如果使用自定义创建RAM角色,该RAM角色此时无任何权限。您需要为该RAM角色授予系统策略或自定义策略,参考如下。

  1. 角色页面,单击目标RAM角色操作列的添加权限image.png

  2. 添加权限页面,选中目标权限(例如AliyunLogFullAccess)。

    • 选择授权应用范围。

      • 整个云账号:权限在当前阿里云账号内生效(推荐)。

      • 指定资源组:权限在指定的资源组内生效。

    • 输入授权主体。

      授权主体即需要授权的RAM角色名称,系统会自动填入当前的RAM角色。

    • 选择AliyunLogFullAccess权限策略(AliyunLogFullAccess为管理日志服务的权限)。

    image.png
  3. 确认授权结果,单击完成

步骤三 修改RAM角色信任策略

说明

信任策略是来告知MaxCompute服务和SLS服务可以信任该目标角色。

  1. 单击目标角色名称。

  2. 单击信任策略管理并修改其内容,添加"dataworks.aliyuncs.com"为授信服务。image.pngimage.png

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "log.aliyuncs.com",
              "dataworks.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

步骤四 创建MaxCompute项目

说明
  • 如果已有MaxCompute项目,可以跳过这一步。

  •  阿里云账号或RAM用户已开通DataWorks服务和MaxCompute服务,且位于同一地域。

  •  如果您需要以RAM用户身份创建MaxCompute项目,请确认已获取RAM用户账号并已授予AliyunDataWorksFullAccess权限。更多信息,请参见准备RAM用户

  1. 使用RAM用户登录DataWorks控制台

  2. 在左侧导航栏,单击工作空间列表,并切换至相应的地域后,单击创建工作空间

    创建工作空间完成后也会一并创建好MaxCompute项目。image.png

  3. 创建工作空间对话框,配置各项参数,单击下一步。

    更多信息,请参见创建工作空间中的第3步。image.png

  4. 进入选择引擎页面,这里暂时选择计算引擎服务MaxCompute,单击下一步。

    更多信息,请参见创建工作空间中的第4步。image.png

  5. 进入引擎详情页面,配置各项参数后,单击创建工作空间。

    更多信息,请参见创建工作空间中的第5步。

    image.png
  6. 配置完成后,单击左侧导航栏MaxCompute,查看所创建的MaxCompute项目。image.png

步骤五 创建MaxCompute表

说明

如果已有MaxCompute表,可以跳过这一步。

  1. 进入DataWorks控制台的工作空间列表页面,单击目标工作空间操作列的数据开发

  2. 单击左侧数据开发> 鼠标悬停至+新建图标,单击新建业务流程。image.png

  3. 在新建业务流程对话框中,输入业务名称。image.png

  4. 将鼠标悬停至+新建图标,单击MaxCompute > ODPS SQLimage.png

  5. 新建节点对话框中,设置对应节点的类型路径名称image.png

  6. 输入SQL语句,单击运行,即可进行表的创建。image.png

  7. 选择表管理->其它,双击已创建的目标表即可进入表管理页面。

  8. 在表管理页面中基本属性的中文名行,输入自定义别名,然后单击提交到生产环境。image.png

步骤六 将RAM角色添加到MaxCompute中

  1. 登录DataWorks控制台

  2. 单击左侧导航栏MaxComputeimage.png

  3. 在MaxCompute项目管理页,单击目标项目操作列成员管理image.png

  4. 成员管理页面,单击右上方的添加成员image.png

  5. 添加成员对话框中,单击刷新,即可展示已创建的RAM角色。

  6. 在待添加账号处勾选需要添加的当前登录账号、自定义角色账号如demo,单击>,将其移动至已添加的账号中。

    image.png
    说明

    若多次刷新后,仍不能显示目标RAM角色,请参见步骤三 修改角色信任策略,检查权限策略是设置正确。

  7. 选中需要授予的角色,单击确定image.png

添加完成后,您可以在工作空间中列表中查看或修改已有的成员和对应角色,也可以从工作空间中删除非项目所有者角色的RAM用户。工作空间中成员对应角色更多信息请参见添加工作空间成员和角色中的第7步。

步骤七 授予RAM角色写数据到MaxCompute的权限

  1. 单击目标工作空间操作列的数据开发

  2. 单击右上方的图标,进入工作空间配置页面。

  3. 在左侧导航栏,单击MaxCompute高级配置,在MaxCompute 项目选择选项卡中选择生产环境下项目名称。

  4. 单击自定义用户角色,进行MaxCompute生产项目授权

    更多关于MaxCompute项目角色的信息,请参见添加工作空间成员和角色中的第7步。image.png

  5. 在角色名称为admin的操作列,单击成员管理后,在待添加账号处勾选当前操作账号(注意必须是当前操作账号)、目标RAM角色账号,单击>,将其移动至已添加的账号中并点击确定image.png

  6. 授予角色查看、修改、更新目标MaxCompute表的权限。

    • 在角色名称为role_project_admin的操作列,单击成员管理,在待添加账号处勾选当前登录账号、目标RAM角色账号,单击>,将其移动至已添加的账号中并点击确定image.png

    • 在角色名称为role_project_admin的操作列,单击权限管理,单击角色授权弹窗框中,单击表 > 添加表,添加已创建的MaxCompute表,然后选中Describe、Alter、Update。image.png

步骤八 创建投递MaxCompute作业

说明
  • 已创建Project和Logstore。具体操作,请参见创建Project和Logstore。 

  • 已采集日志。具体操作,请参见数据采集。 

  • 已在MaxCompute中创建表。具体操作,请参见步骤五 创建MaxCompute项目表

  1. 登录日志服务控制台

  2. 在Project列表区域,单击目标Project。

  3. 日志存储 > 日志库页签中,单击目标Logstore左侧的>,选择数据处理 > 导出> MaxCompute(原ODPS)。

  4. 将鼠标悬浮在MaxCompute(原ODPS)上,单击+image.png

  5. MaxCompute投递功能面板中,配置如下参数,然后单击确定

    选择投递版本新版(推荐),重要参数配置说明如下所示。image.pngimage.png

    参数

    说明

    投递名称

    投递作业的名称。

    投递区域

    目标MaxCompute表所在地域。

    MaxCompute Endpoint

    MaxCompute地域对应的Endpoint,可以向MaxCompute发出除数据上传、下载外的所有请求。

    Tunnel Endpoint

    MaxCompute地域对应的Tunnel Endpoint,有上传、下载数据的能力。

    项目名

    目标MaxCompute表所在的MaxCompute项目。

    MaxCompute表名

    目标MaxCompute表名称。

    读日志服务授权

    授予MaxCompute投递作业读取Logstore数据的权限,您可使用已完成授权的默认角色或自定义角色。

    写入授权方式

    您可以通过RAM用户的AccessKey或RAM角色,完成写MaxCompute的授权。

    写MaxCompute授权

    授予MaxCompute投递作业将数据写到MaxCompute表中的权限,您可使用已完成授权的默认角色或自定义角色。

    MaxCompute普通列

    左边输入框中填写与MaxCompute表列相映射的日志字段名称,右边为MaxCompute表的列名称。

    说明

    不允许使用同名字段。

    MaxCompute分区列

    左边输入框中填写与MaxCompute表分区列相映射的日志字段名称,右边为MaxCompute表分区列名称。

    说明

    分区字段不支持extract_othersextract_others_all

    时间分区格式

    时间分区格式。

    时区选择

    该时区用于格式化时间以及时间分区。

    投递模式

    支持实时投递和批投递。

    • 实时投递:即时读取Logstore中的数据,并投递到MaxCompute。

    • 批投递:读取Logstore中早于当前时间5分钟~10分钟之间的数据,并投递到MaxCompute中。

    开始时间范围

    投递作业从该时间开始拉取Logstore中的数据。

创建完成后,您可以单击MaxCompute作业,查看数据写入状态。image.png

步骤九 开通作业运行日志

说明
  • 开通作业运行日志后,您可以在指定Project下的internal-diagnostic_log Logstore中查看MaxCompute投递作业的运行日志与错误日志,其日志主题(__topic__)为etl_metrics。

  • 您也可以通过投递作业名称查询目标投递作业的运行日志与错误日志,对应的查询语句为"job_name:作业名称",例如job_name:job-1646****946。

  • 统计图表中的运行异常图表依赖投递作业运行日志,因此在查看统计报表前,您需先开通作业运行日志。

  1. 登录日志服务控制台

  2. 在Project列表区域,单击目标Project。

    该Project为MaxCompute投递作业所在的Project。

  3. 在页面左上方,单击图标。image.png

  4. 进入开通作业运行日志页面。

    • 如果您开未通过该Project的详细日志,则在服务日志页签中,单击开通服务日志

    • 如果您已开通过该Project的详细日志,则在服务日志页签中,单击图标。

    image.png
  5. 设置参数,然后单击确定

    image.png

    参数

    说明

    作业运行日志

    打开作业运行日志开关后,系统将在您指定的Project中自动创建一个名为internal-diagnostic_log的Logstore,用于存储Scheduled SQL、MaxCompute投递、OSS投递、数据导入等作业的运行日志与错误日志。

    日志存储位置

    开通作业运行日志功能后,需要选择日志的存储位置,即需要指定Project。可以设置为:

    • 自动创建(推荐)。

    • 当前Project。

    • 同一地域下的其他Project。

步骤十 通过管理排查错误

  1. 登录日志服务控制台

  2. 在Project列表区域,单击目标Project。

  3. 日志存储 > 日志库页签中,单击目标Logstore左侧的>,选择数据处理 > 导出> MaxCompute(原ODPS)。

  4. 单击目标作业,进入任务管理页面。

    image.png
  5. 通过管理页面运行异常表可及时排查错误且单击展开,可查看详细错误信息。image.png

总结

通过上面的步骤,就可以完成投递数据到MaxCompute。如果有更多问题,可以参考如下官方文档。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
10天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
|
25天前
|
开发者 Python
基于Python的日志管理与最佳实践
日志是开发和调试过程中的重要工具,然而,如何高效地管理和利用日志常常被忽略。本文通过Python中的logging模块,探讨如何使用日志来进行调试、分析与问题排查,并提出了一些实际应用中的优化建议和最佳实践。
|
2月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
1月前
|
存储 大数据 数据挖掘
【数据新纪元】Apache Doris:重塑实时分析性能,解锁大数据处理新速度,引爆数据价值潜能!
【9月更文挑战第5天】Apache Doris以其卓越的性能、灵活的架构和高效的数据处理能力,正在重塑实时分析的性能极限,解锁大数据处理的新速度,引爆数据价值的无限潜能。在未来的发展中,我们有理由相信Apache Doris将继续引领数据处理的潮流,为企业提供更快速、更准确、更智能的数据洞察和决策支持。让我们携手并进,共同探索数据新纪元的无限可能!
81 11
|
1月前
|
SQL 人工智能 运维
在阿里云日志服务轻松落地您的AI模型服务——让您的数据更容易产生洞见和实现价值
您有大量的数据,数据的存储和管理消耗您大量的成本,您知道这些数据隐藏着巨大的价值,但是您总觉得还没有把数据的价值变现出来,对吗?来吧,我们用一系列的案例帮您轻松落地AI模型服务,实现数据价值的变现......
132 3
|
2月前
|
存储 分布式计算 大数据
MaxCompute 数据分区与生命周期管理
【8月更文第31天】随着大数据分析需求的增长,如何高效地管理和组织数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个专为海量数据设计的计算服务,它提供了丰富的功能来帮助用户管理和优化数据。本文将重点讨论 MaxCompute 中的数据分区策略和生命周期管理方法,并通过具体的代码示例来展示如何实施这些策略。
82 1
|
2月前
|
JSON Java fastjson
Java日志通关(五) - 最佳实践
作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第五篇。
|
2月前
数据平台问题之在数据影响决策的过程中,如何实现“决策/行动”阶段
数据平台问题之在数据影响决策的过程中,如何实现“决策/行动”阶段
|
2月前
|
存储 分布式计算 大数据
【Flume的大数据之旅】探索Flume如何成为大数据分析的得力助手,从日志收集到实时处理一网打尽!
【8月更文挑战第24天】Apache Flume是一款高效可靠的数据收集系统,专为Hadoop环境设计。它能在数据产生端与分析/存储端间搭建桥梁,适用于日志收集、数据集成、实时处理及数据备份等多种场景。通过监控不同来源的日志文件并将数据标准化后传输至Hadoop等平台,Flume支持了性能监控、数据分析等多种需求。此外,它还能与Apache Storm或Flink等实时处理框架集成,实现数据的即时分析。下面展示了一个简单的Flume配置示例,说明如何将日志数据导入HDFS进行存储。总之,Flume凭借其灵活性和强大的集成能力,在大数据处理流程中占据了重要地位。
37 3
|
2月前
|
SQL 数据库 Java
Hibernate 日志记录竟藏着这些秘密?快来一探究竟,解锁调试与监控最佳实践
【8月更文挑战第31天】在软件开发中,日志记录对调试和监控至关重要。使用持久化框架 Hibernate 时,合理配置日志可帮助理解其内部机制并优化性能。首先,需选择合适的日志框架,如 Log4j 或 Logback,并配置日志级别;理解 Hibernate 的多级日志,如 DEBUG 和 ERROR,以适应不同开发阶段需求;利用 Hibernate 统计功能监测数据库交互情况;记录自定义日志以跟踪业务逻辑;定期审查和清理日志避免占用过多磁盘空间。综上,有效日志记录能显著提升 Hibernate 应用的性能和稳定性。
38 0
下一篇
无影云桌面