日志数据投递到MaxCompute最佳实践

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

背景

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

投递流程

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

一、创建角色

温馨提示:如果使用默认角色,可以跳过这一步。

1.登录RAM控制台

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

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

   


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

   


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

参数

说明

角色类型

选择普通角色类型

角色名称

输入角色名称,例如aliyunlogreadrole。

备注

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

选择受信服务

选择日志服务


   


二、授予角色日志服务读权限

温馨提示:

  • 如果使用默认角色AliyunLogDefaultRole,可以跳过这一步。
  • 如果使用自定义创建RAM角色,该RAM角色此时无任何权限。您需要为该RAM角色授予系统策略或自定义策略,参考如下。

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

   


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

  • 选择授权应用范围。
  • 整个云账号:权限在当前阿里云账号内生效(推荐)。
  • 指定资源组:权限在指定的资源组内生效。
  • 输入授权主体。授权主体即需要授权的RAM角色名称,系统会自动填入当前的RAM角色。
  • 选择AliyunLogFullAccess权限策略(AliyunLogFullAccess为管理日志服务的权限)。

   


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

三、修改角色信任策略

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

1.单击目标角色名称。

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

{
"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用户信息操作,请参见准备RAM用户

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

2.创建工作空间,创建工作空间完成后也会一并创建好MaxCompute项目

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

   


  • 创建工作空间对话框,配置各项参数,单击下一步。更多参数信息请参见创建工作空间中第3步

   


  • 进入选择引擎页面,这里暂时选择计算引擎服务MaxCompute,单击下一步。更多参数信息请参见创建工作空间中第4步

   


  • 进入引擎详情页面,配置各项参数后,单击创建工作空间。更多参数信息请参见创建工作空间中第5步。

   


  • 配置完成后,单击左侧导航栏MaxCompute即可进入Maxcompute项目管理页面看到所创建的Maxcompute项目。

   


   


五、创建MaxCompute项目表

温馨提示:如果已有MaxCompute表,可以跳过这一步。

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

2.单击左侧数据开发> 鼠标悬停至+新建图标,单击新建业务流程,弹窗内输入业务名称。

     


   


3.鼠标悬停至+新建图标,单击MaxCompute > ODPS SQL,弹窗内输入对应的节点类型路径名称

   


   


4.新建完节点后,即会跳出sql页面,输入sql语句单击运行即可进行表的创建。

   


5.单击左侧表管理->其它,双击已创建的目标表即可进入表管理页面。

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

   


六、把角色添加到Maxcompute

1.进入DataWorks控制台首页,单击左侧导航栏MaxCompute进入MaxCompute项目管理页。

   


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

   


3.在成员管理页面,单击右上方的添加成员

   


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

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

   

温馨提示:若多次刷新后,仍不能显示目标RAM角色请参见上述第三步骤修改角色信任策略进行检查操作是正确。


6.选中需要授予的角色,单击确定

   


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

七、授予MaxCompute写入权限

1.单击目标工作空间操作列数据开发进入数据开发页面。

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

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

4.单击自定义用户角色,进行MaxCompute生产项目授权更多MaxCompute项目角色信息请参见添加工作空间成员和角色第7步。

   

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

   


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

  • 在角色名称为role_project_admin的操作列,单击成员管理,在待添加账号处勾选当前登录账号、目标RAM角色账号,单击>,将其移动至已添加的账号中并点击确定
  • 在角色名称为role_project_admin的操作列,单击权限管理,单击角色授权弹窗框中,单击表 > 添加表并添加已创建的MaxCompute表->选择选项卡Describe、Alter、Update > 关闭。

   


   


八、创建投递MaxCompute任务并验证投递是否成功

前提条件:

  1. 创建Project和Logstore。具体操作,请请参见创建Project和Logstore
  2. 已采集日志。具体操作,请参见数据采集
  3. 已在MaxCompute中创建表。具体操作,请参见上述第五步创建MaxCompute项目表

1.登录日志服务控制台

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

3.开始创建投递任务。

  • 日志存储 > 日志库页签中,单击目标Logstore左侧的>,选择数据处理 > 导出> MaxCompute(原ODPS)。
  • 将鼠标悬浮在MaxCompute(原ODPS)上,单击+

   


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

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

参数

说明

投递名称

投递任务的名称。

投递区域

目标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任务页面即可查看数据写入状态,如下参考图。

   


九、通过管理页面排查错误

  1. 登录日志服务控制台
  2. 在Project列表区域,单击目标Project。
  3. 日志存储 > 日志库页签中,单击目标Logstore左侧的>,选择数据处理 > 导出> MaxCompute(原ODPS)。
  4. 单击目标任务进入任务管理页面,如果页面没有显示内容,请通过步骤10开通投递日志。

   


 5.通过管理页面运行异常表可及时排查错误如下图点击信息列展开字样即可看到详细错误信息。

   


十、开通运行日志

说明:

开通作业运行日志后,您可以在指定Project下的internal-diagnostic_log Logstore中查看MaxCompute投递作业的运行日志与错误日志,其日志主题(__topic__)为etl_metrics。您也可以通过投递作业名称查询目标投递作业的运行日志与错误日志,对应的查询语句为job_name:作业名称,例如job_name:job-1646****946

  1. 登录日志服务控制台
  2. 在Project列表区域,单击目标Project。该Project为MaxCompute投递作业所在的Project。
  3. 在页面左上方,单击图标。

   


  1. 进入开通作业运行日志页面。
  • 如果您开未通过该Project的详细日志,则在服务日志页签中,单击开通服务日志
  • 如果您已开通过该Project的详细日志,则在服务日志页签中,单击图标。

   


   


  5.设置参数如下,然后单击确定。

参数

说明

作业运行日志

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

日志存储位置

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

  • 自动创建(推荐)。
  • 当前Project。
  • 同一地域下的其他Project。


   


投递限制与常见问题

1.投递限制相关,具体请参见稳定性说明与使用限制

2.投递过程中常见问题,具体请参见MaxCompute投递作业(新版)常见报错与问题



相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
10月前
|
数据采集 存储 大数据
大数据之路:阿里巴巴大数据实践——日志采集与数据同步
本资料全面介绍大数据处理技术架构,涵盖数据采集、同步、计算与服务全流程。内容包括Web/App端日志采集方案、数据同步工具DataX与TimeTunnel、离线与实时数仓架构、OneData方法论及元数据管理等核心内容,适用于构建企业级数据平台体系。
977 1
|
7月前
|
数据采集 缓存 大数据
【赵渝强老师】大数据日志采集引擎Flume
Apache Flume 是一个分布式、可靠的数据采集系统,支持从多种数据源收集日志信息,并传输至指定目的地。其核心架构由Source、Channel、Sink三组件构成,通过Event封装数据,保障高效与可靠传输。
424 1
|
8月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
739 1
日志收集和Spring 微服务监控的最佳实践
|
8月前
|
负载均衡 监控 安全
5 个 IIS 日志记录最佳实践
IIS日志记录是监控Web服务器性能与安全的关键。本文介绍启用日志、应用池配置、负载均衡、敏感数据防护、日志集中管理及保留策略等五大最佳实践,助力高效分析与合规审计。
430 1
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
1151 54
|
监控 安全 BI
优化 Apache 日志记录的 5 个最佳实践
Apache 日志记录对于维护系统运行状况和网络安全至关重要,其核心包括访问日志与错误日志的管理。通过制定合理的日志策略,如选择合适的日志格式、利用条件日志减少冗余、优化日志级别、使用取证模块提升安全性及实施日志轮换,可有效提高日志可用性并降低系统负担。此外,借助 Eventlog Analyzer 等专业工具,能够实现日志的高效收集、可视化分析与威胁检测,从而精准定位安全隐患、评估服务器性能,并满足合规需求,为强化网络安全提供有力支持。
320 0
优化 Apache 日志记录的 5 个最佳实践
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
437 1
|
存储 分布式计算 NoSQL
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
434 0
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
579 9