(小ネタ)別ファイルにしたSQLをAthenaで投げたい
Athenaに投げるSQLを別ファイルにしておきたい。
こうしておくと、管理もしやすくなり、SQLFluffでCIしたりできるようになる。
PythonからのSQLの読み出し方
DMLをopenしてread()で読み出し、そのままstart_query_executionのQueryString引数に渡せばよいことが分かった。
import boto3 athena = boto3.client('athena', region_name='ap-northeast-1') DATABASE_NAME = "" S3BUCKET_NAME = "" with open("./sample.sql", 'r') as sql_f: sql =sql_f.read() result = athena.start_query_execution( QueryString = sql, QueryExecutionContext = { 'Database': DATABASE_NAME }, ResultConfiguration = { 'OutputLocation': 's3://' + S3BUCKET_NAME, } )
DML
SELECT * FROM "sample_db"."sample_table" limit 10;