cms网站代理,西地那非片的副作用,如何学做网站外包,设计公司的名字3 serverless数据分析 大纲 3 serverless数据分析3.1 创建Lambda3.2 创建API Gateway3.3 结果3.4 总结 3.1 创建Lambda
在Lambda中#xff0c;我们将使用python3作为代码语言。
步骤图例1、入口2、创建#xff08;我们选择使用python3.7#xff09;3、IAM权限#xff08;…3 serverless数据分析 大纲 3 serverless数据分析3.1 创建Lambda3.2 创建API Gateway3.3 结果3.4 总结 3.1 创建Lambda
在Lambda中我们将使用python3作为代码语言。
步骤图例1、入口2、创建我们选择使用python3.73、IAM权限权限可信实体需要包括Lambda才能将角色绑定到Lambda上见下方“IAM可信实体描述”4、指定处理函数处理程序要为用户程序的入口5、添加层层为我们的代码运行时的环境并且兼容运行时要包含上一步中的运行时环境6、代码在此代码中使用了boto3来连接Athena可自定义sql使用方法请看官方文档见下方“Lambda代码”
IAM可信实体描述
{Version: 2012-10-17,Statement: [{Effect: Allow,Principal: {Service: lambda.amazonaws.com},Action: sts:AssumeRole}]
}Lambda代码
import boto3, os, json
import pandas as pdfrom pyathena import connect
import time
REGION us-west-2# expected request: anomaly/{meter_id}?data_start{}data_end{}outlier_only{}
def lambda_handler(event, context):ATHENA_OUTPUT_BUCKET 【待替换S3桶路径】/athenaDB_SCHEMA suzikuo_test_dbUSE_WEATHER_DATA 0pathParameter event[pathParameters]queryParameter event[queryStringParameters]METER_ID pathParameter[meter_id]DATA_START queryParameter[data_start]DATA_END queryParameter[data_end]OUTLIER_ONLY queryParameter[outlier_only]query select * from {}.reading_type_intwhere meter_id {}and cast(reading_date_time as timestamp) timestamp {} and cast(reading_date_time as timestamp) timestamp {}.format(DB_SCHEMA, METER_ID, DATA_START, DATA_END)athena boto3.client(athena)response athena.start_query_execution(QueryStringquery,QueryExecutionContext{Database: suzikuo_test_db},ResultConfiguration{OutputLocation: s3://suzikuo-test-2022-8-4-s3/athena,EncryptionConfiguration: {EncryptionOption: SSE_S3}})while True:try:query_results athena.get_query_results(QueryExecutionIdresponse[QueryExecutionId])breakexcept Exception as err:if Query has not yet finished in str(err):time.sleep(3)else:raise(err)return query_results[ResultSet][Rows]3.2 创建API Gateway
使用API GatewayLambda 可轻松实现一个serverless架构。
步骤图例1、入口2、API我们使用的是Lambda所以选HTTP API3、创建集成指定要绑定的Lambda4、配置路由指定路由要请求的集成lambda5、一直下一步即可
3.3 结果
此案例只查询了某一ID的某个时间段内的数据 通过获取URI和参数在Lambda中编写逻辑可以实现我们对数据的任意操作。 3.4 总结
到此我们已经完成了基于Glue ETL(提取、转换和加载)的serviceless 数据分析的全部过程了。在此案例中我们使用到了AWS 服务中的Glue、S3、APIGateway、Lambda等服务实现了一个通过API访问的数据统计与分析接口。