Contents

Redshift

Contents

Redshift

Amazon Redshift是AWS提供的一种快速、可扩展的数据仓库解决方案,它基于列式存储和MPP(大规模并行处理)架构,能够高效地存储和查询超大规模的数据。

Redshift的主要特性包括:

  • 高性能的列式存储与聚集设计,提升查询和加载速度,同时减少存储需求。
  • 支持高度并行和水平扩展,可以随时通过添加节点expand容量和性能。
  • 集成了多种数据压缩算法,大幅节约存储成本。
  • 支持标准SQL查询接口,可以使用现有BI工具连接。
  • 和其他AWS服务高度集成,如S3、EMR等,数据可无缝加载。
  • 提供petabyte级数据的备份和快照。
  • 提供高可用功能,支持多AZ部署。

DSL

select * from orders;
delete orders where o_orderdate between '1997-01-01' and '1998-01-01';

DDL

DROP TABLE IF EXISTS orders;
create table orders (
  O_ORDERKEY bigint NOT NULL,
  O_CUSTKEY bigint,
  O_ORDERSTATUS varchar(1),
  O_TOTALPRICE decimal(18,4),
  O_ORDERDATE Date,
  O_ORDERPRIORITY varchar(15),
  O_CLERK varchar(15),
  O_SHIPPRIORITY Integer,
  O_COMMENT varchar(79))
distkey (O_ORDERKEY)
sortkey (O_ORDERDATE);
//distkey(O_ORDERKEY) 把 O_ORDERKEY 字段定义为这张表的分布键
//sortkey(O_ORDERDATE)把 O_ORDERDATE 定义为排序键。

Loading data from S3

copy orders from 's3://redshift-immersionday-labs/data/orders/orders.tbl.'
iam_role default
region 'us-west-2' lzop delimiter '|' COMPUPDATE PRESET;
----------------------------------------------------------------------
COPY change.public.track_click (
    timestamp,
    date,
    hour,
    offer_id,
    aff_id,
    aff,
    os,
    country,
    adx_id,
    adx_score,
    adx_reason,
    adx_package
) FROM 's3://chongda-vg/adx/click/$path' GZIP IAM_ROLE 'arn:aws:iam::*********:role/redshift-role' FORMAT AS CSV DELIMITER '\t' QUOTE '\"'  REGION AS 'us-east-1'  FILLRECORD MAXERROR 10000"

测试加载300M数据需耗时22s

在有大量重复的查询操作的时候可以Materialized views

CREATE MATERIALIZED VIEW view_name
AUTO REFRESH YES AS select....

使用物化视图来存储预先计算的结果,以加速可预测和重复的查询