• 关于

    上下文关联帮助常见问题及解决方法

    的搜索结果

问题

云服务器 ECS Linux 更新操作最佳实践是什么

boxti 2019-12-01 22:05:28 1841 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:17 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:17 0 浏览量 回答数 0

阿里云爆款特惠专场,精选爆款产品低至0.95折!

爆款ECS云服务器8.1元/月起,云数据库低至1.5折,限时抢购!

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:17 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:16 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:18 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:17 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:16 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:15 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:15 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:15 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:17 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:16 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 投递日志到 MaxCompute 是日志服务的一个功能,能够帮助您最大化数据价值。您可以自己决定对某个日志库是否启用该功能。一旦启用该功能,日志服务后台会定时把写入到该日志库内的日志投递到 MaxCompute 对应的表格中。 使用限制 数加控制台创建、修改投递配置必须由主账号完成,不支持子账号操作。 投递MaxCompute是批量任务,请谨慎设置分区列:保证一个同步任务内处理的数据分区数小于512个;用作分区列的字段值不能包括/等MaxCompute保留字段 。配置细节请参考下文投递配置说明。 不支持海外Region的MaxCompute投递,海外Region的MaxCompute请使用dataworks进行数据同步。国内Region投递支持如下: 日志服务Region MaxCompute Region 华北1 华东2 华北2 华北2、华东2 华北3 华东2 华北5 华东2 华东1 华东2 华东2 华东2 华南1 华南1、华东2 香港 华东2 功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数据到MaxCompute具有如下优势: 使用便捷 您只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中。 避免重复收集工作 由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不同机器上收集一遍日志数据后再导入到MaxCompute。 充分复用日志服务内的日志分类管理工作 用户可让日志服务中不同类型的日志(存在不同Logstore中)、不同Project的日志自动投递到不同的MaxCompute表格,方便管理及分析MaxCompute内的日志数据。 说明 一般情况下日志数据在写入Logstore后的1个小时导入到MaxCompute,您可以在控制台投递任务管理查看导入状态。导入成功后即可在MaxCompute内查看到相关日志数据。判断数据是否已完全投递请参考文档。 结合日志服务的实时消费,投递日志数据到MaxCompute的数据通道以及日志索引功能,可以让用户按照不同的场景和需求、以不同的方式复用数据,充分发挥日志数据的价值。 配置流程 举例日志服务的一条日志如下: 16年01月27日20时50分13秒 10.10.*.* ip:10.10.*.* status:200 thread:414579208 time:27/Jan/2016:20:50:13 +0800 url:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1 user-agent:aliyun-sdk-java 日志左侧的ip、status、thread、time、url、user-agent等是日志服务数据的字段名称,需要在下方配置中应用到。 步骤1 初始化数加平台 在日志服务的控制台Logstore列表单击日志投递列的MaxCompute。 自动跳转到初始化数加平台的页面。MaxCompute默认为按量付费模式,具体参见MaxCompute文档说明。 查看服务协议和条款后单击确定,初始化数加平台。 初始化开通需10~20秒左右,请耐心等待。如果已经开通数加及大数据计算服务MaxCompute(原ODPS),将直接跳过该步骤。 步骤2 数据模型映射在日志服务和大数据计算服务MaxCompute(原ODPS)之间同步数据,涉及两个服务的数据模型映射问题。您可以参考日志服务日志数据结构了解数据结构。 将样例日志导入MaxCompute,分别定义MaxCompute数据列、分区列与日志服务字段的映射关系: MaxCompute 列类型 MaxCompute 列名(可自定义) MaxCompute 列类型(可自定义) 日志服务字段名(投递配置里填写) 日志服务字段类型 日志服务字段语义 数据列 log_source string __source__ 系统保留字段 日志来源的机器 IP。 log_time bigint __time__ 系统保留字段 日志的 Unix 时间戳(是从1970 年 1 月 1 日开始所经过的秒数),由用户日志的 time 字段计算得到。 log_topic string __topic__ 系统保留字段 日志主题。 time string time 日志内容字段 解析自日志。 ip string ip 日志内容字段 解析自日志。 thread string thread 日志内容字段 解析自日志。 log_extract_others string __extract_others__ 系统保留字段 未在配置中进行映射的其他日志内字段会通过 key-value 序列化到json,该 json 是一层结构,不支持字段内部 json 嵌套。 分区列 log_partition_time string __partition_time__ 系统保留字段 由日志的 time 字段对齐计算而得,分区粒度可配置,在配置项部分详述。 status string status 日志内容字段 解析自日志,该字段取值应该是可以枚举的,保证分区数目不会超出上限。 MaxCompute 表至少包含一个数据列、一个分区列。 系统保留字段中建议使用 __partition_time__,__source__,__topic__。 MaxCompute 单表有分区数目 6 万的限制,分区数超出后无法再写入数据,所以日志服务导入 MaxCompute表至多支持3个分区列。请谨慎选择自定义字段作为分区列,保证其值是可枚举的。 系统保留字段 __extract_others__ 历史上曾用名 _extract_others_,填写后者也是兼容的。 MaxCompute 分区列的值不支持”/“等特殊字符,这些是 MaxCompute 的保留字段。 MaxCompute 分区列取值不支持空,所以映射到分区列的字段必须要在日志里存在,空分区列的日志会在投递中被丢弃。 步骤3 配置投递规则 开启投递。 初始化数加平台之后,根据页面提示进入LogHub —— 数据投递页面,选择需要投递的Logstore,并单击开启投递。 您也可以在MaxCompute(原ODPS)投递管理页面选择需要投递的Logstore,并单击开启投递以进入LogHub —— 数据投递页面。 图 1. 开启投递 配置投递规则。 在 LogHub —— 数据投递页面配置 字段关联等相关内容。 图 2. 配置投递规则 配置项含义: 参数 语义 投递名称 自定义一个投递的名称,方便后续管理。 MaxCompute Project MaxCompute项目名称,该项默认为新创建的Project,如果已经是MaxCompute老客户,可以下拉选择已创建其他Project。 MaxCompute Table MaxCompute表名称,请输入自定义的新建的MaxCompute表名称或者选择已有的MaxCompute表。 MaxCompute 普通列 按序,左边填写与MaxCompute表数据列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 MaxCompute 分区列 按序,左边填写与MaxCompute表分区列相映射的日志服务字段名称,右边填写或选择MaxCompute表的普通字段名称及字段类型。 分区时间格式 __partition_time__输出的日期格式,参考 Java SimpleDateFormat。 导入MaxCompute间隔 MaxCompute数据投递间隔,默认1800,单位:秒。 该步会默认为客户创建好新的MaxCompute Project和Table,其中如果已经是MaxCompute老客户,可以下拉选择其他已创建Project。 日志服务投递MaxCompute功能按照字段与列的顺序进行映射,修改MaxCompute表列名不影响数据导入,如更改MaxCompute表schema,请重新配置字段与列映射关系。 日志服务数据的一个字段最多允许映射到一个MaxCompute表的列(数据列或分区列),不支持字段冗余。 参考信息 __partition_time__ 格式 将日志时间作为分区字段,通过日期来筛选数据是MaxCompute常见的过滤数据方法。 __partition_time__ 是根据日志time字段值计算得到(不是日志写入服务端时间,也不是日志投递时间),结合分区时间格式,向下取整(为避免触发MaxCompute单表分区数目的限制,日期分区列的值会按照导入MaxCompute间隔对齐)计算出日期作为分区列。 举例来说,日志提取的time字段是“27/Jan/2016:20:50:13 +0800”,日志服务据此计算出保留字段__time__为1453899013(Unix时间戳),不同配置下的时间分区列取值如下: 导入MaxCompute间隔 分区时间格式 __partition_time__ 1800 yyyy_MM_dd_HH_mm_00 2016_01_27_20_30_00 1800 yyyy-MM-dd HH:mm 2016-01-27 20:30 1800 yyyyMMdd 20160127 3600 yyyyMMddHHmm 201601272000 3600 yyyy_MM_dd_HH 2016_01_27_20 请勿使用精确到秒的日期格式:1. 很容易导致单表的分区数目超过限制(6万);2. 单次投递任务的数据分区数目必须在512以内。 以上分区时间格式是测试通过的样例,您也可以参考Java SimpleDateFormat自己定义日期格式,但是该格式不得包含斜线字符”/“(这是MaxCompute的保留字段)。 __partition_time__ 使用方法 使用MaxCompute的字符串比较筛选数据,可以避免全表扫描。比如查询2016年1月26日一天内日志数据: select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27"; __extract_others__使用方法 log_extract_others为一个json字符串,如果想获取该字段的user-agent内容,可以进行如下查询: select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10; 说明 get_json_object是MaxCompute提供的标准UDF。请联系MaxCompute团队开通使用该标准UDF的权限。 示例供参考,请以MaxCompute产品建议为最终标准。 其他操作 编辑投递配置 在Logstore列表投递项,单击“修改”即可针对之前的配置信息进行编辑。其中如果想新增列,可以在大数据计算服务MaxCompute(原ODPS)修改投递的数据表列信息,则点击“修改”后会加载最新的数据表信息。 投递任务管理 在启动投递功能后,日志服务后台会定期启动离线投递任务。用户可以在控制台上看到这些投递任务的状态和错误信息。具体请参考管理日志投递任务。 如果投递任务出现错误,控制台上会显示相应的错误信息: 错误信息 建议方案 MaxCompute项目空间不存在 在MaxCompute控制台中确认配置的MaxCompute项目是否存在,如果不存在则需要重新创建或配置。 MaxCompute表不存在 在MaxCompute控制台中确认配置的MaxCompute表是否存在,如果不存在则需要重新创建或配置。 MaxCompute项目空间或表没有向日志服务授权 在MaxCompute控制台中确认授权给日志服务账号的权限是否还存在,如果不存在则需要重新添加上相应权限。 MaxCompute错误 显示投递任务收到的MaxCompute错误,请参考MaxCompute相关文档或联系MaxCompute团队解决。日志服务会自动重试最近两天时间的失败任务。 日志服务导入字段配置无法匹配MaxCompute表的列 重新配置MaxCompute表格的列与日志服务数据字段的映射配置。 当投递任务发生错误时,请查看错误信息,问题解决后可以通过云控制台中“日志投递任务管理”或SDK来重试失败任务。 MaxCompute中消费日志 MaxCompute用户表中示例数据如下: | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ | 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 | +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+ 同时,我们推荐您直接使用已经与MaxCompute绑定的大数据开发Data IDE来进行可视化的BI分析及数据挖掘,这将提高数据加工的效率。 授予MaxCompute数据投递权限 如果在数加平台执行表删除重建动作,会导致默认授权失效。请手动重新为日志服务投递数据授权。 在MaxCompute项目空间下添加用户: ADD USER aliyun$shennong_open@aliyun.com; shennong_open@aliyun.com 是日志服务系统账号(请不要用自己的账号),授权目的是为了能将数据写入到MaxCompute MaxCompute项目空间Read/List权限授予: GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com; MaxCompute项目空间的表Describe/Alter/Update权限授予: GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com; 确认MaxCompute授权是否成功: SHOW GRANTS FOR aliyun$shennong_open@aliyun.com; A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update

2019-12-01 23:11:16 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 阿里云双十一主会场 阿里云双十一新人会场 1024程序员加油包 阿里云双十一拼团会场 场景化解决方案 阿里云双十一直播大厅