AWS使用笔记 Athena

AWS 全称Amazon web service(亚马逊网络服务),是亚马逊公司旗下云计算服务平台,为全世界各个国家和地区的客户提供一整套基础设施和云解决方案。
AWS面向用户提供包括弹性计算、存储、数据库、物联网在内的一整套云计算服务,帮助企业降低IT投入和维护成本,轻松上云
从概念是来看,AWS提供了一系列的托管产品,帮助我们在没有物理服务器的情况下,照样可以正常完成软件开发中的各种需求,也就是我们常说的云服务。

drop table

1
2
3
4
删除名为 table_name 的表的元数据表定义。删除某个外部表时,底层数据将保持不变
DROP TABLE [IF EXISTS] table_name
DROP TABLE fulfilled_orders
DROP TABLE IF EXISTS fulfilled_orders

create table

1

备份分区表

1
2
3
4
5
CREATE table xxx.test
WITH (external_location ='s3://xxx/xxx/test',
partitioned_by = ARRAY['dt'])
as
SELECT * FROM xxx

查询字符串字段 endwith ‘ ‘

1
2
select distinct product_type from prod
where substring(product_type,-1,1)=' '

替换字符串前后空格

1
trim(article_promo_main_catg, ' ')

拼接时间字符串 yyyymmdd -> yyyy-mm-dd

1
concat(SUBSTRING(DATE,1,4),'-',SUBSTRING(DATE,5,2),'-',SUBSTRING(DATE,7,2)) as biz_date

python操作Athena数据库 将df上传到数据表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import datetime
import awswrangler as wr

def datetime_beijing(datetime_):
beijing_time = datetime_ + datetime.timedelta(hours=8)
return beijing_time


def gen_part_parquet(df: str,path: str,part: list,table: str,dtype: dict):
if len(df)>0:
print(datetime_beijing(datetime.datetime.now()), '###### generate {type} parquet start...'.format(type=table))
wr.s3.to_parquet(
df = df, path= path, dataset=True, mode="overwrite_partitions", partition_cols=part, sanitize_columns=True,
database="xxx", table=table, dtype=dtype
)
print(datetime_beijing(datetime.datetime.now()), '###### generate {type} parquet end...'.format(type=table))
else:
print(df," is empty....")

def gen_s3_parquet(df: str,path: str,table: str, dtype=None):
if len(df)>0:
print(datetime_beijing(datetime.datetime.now()), '###### generate {type} start...'.format(type=table))
wr.s3.to_parquet(
df = df, path= path, dataset=True, mode="overwrite",
sanitize_columns=True, database="xxx", table=table, dtype=dtype
)
print(datetime_beijing(datetime.datetime.now()), '###### generate {type} end...'.format(type=table))
else:
print(df," is empty....")

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2024 HELLO WORLD All Rights Reserved.

UV : | PV :