数据仓库
数据湖
二者比较
Compression:列式压缩
(可参考SAP内容)
(可参考SAP内容)
import boto3
# Create a DynamoDB resource
dynamodb = boto3.resource('dynamodb')
# Select your table
table = dynamodb.Table('Movies')
# Perform a query with a ProjectionExpression
response = table.query(
KeyConditionExpression=boto3.dynamodb.conditions.Key('Title').eq('Inception'),
ProjectionExpression='Title, Year'
)
# Print the items retrieved
for item in response['Items']:
print(item)
数据删除:DelteItem(支持Conditional delete)/ DeleteTable(想删除所有item的话用这个比较快)
APIGateway:如果db坐在它后面,它的rate limits可以用于保护数据库
analyze table
:更新数据库的统计信息,这些统计信息对于数据库查询优化器(Query Optimizer)生成高效的查询执行计划至关重要for share
for update
lock tables table_name write;
,unlock tables;
(突出关键特性)
储存中加密使用KMS,传输中加密为SSL
RDS Proxy可以只对Read Replica进行端点连接
SYS_
开头的view进行的/aws/reshift/serverless/
中,支持各种metrics,似乎都以Query开头insert into
或者create table as
命令create extension dblink;
VACUUM:recovers spaces from deleted rows
create materialized view
,自动刷新set AUTO REFRESH
option on creationAWSLambdaRole
,或者使用语句进行权限赋予grant usage on language exfunc
for permissionscreate external function udf_name(int,int) returns int func_name
create external schema ... URI endpoint IAM_ROLE ... SECRET_ARN ...
,spectrum也是这样的语句来建立S3的数据表SVV_EXTERNAL_SCHEMAS
Snowball + DMS 数据迁移过程
(记点新的东西吧)
AWS Graviton:自己的处理器processors家族
sam init
初始化一个项目Type: 'AWS::Serverless::Function'
sam package
或者用aws cloudformation package
将代码打包到云端sam deploy
或者用aws cloudformation deploy
发布代码sam sync --watch
,sam sync --code --(options)
快速同步本地变更,是SAM Accelerate功能,它使用服务API将变更直接作用于比如Lambda等服务,它之所以快速且同步,是因为它Bypass CloudFormation,直接自己干了AWS Batch和Lambda进行比较,就很像Cloud Run和Cloud Functions进行的比较
ECS Task Networking:None,host(使用底层host的interface),bridge(虚拟网络),awsvpc(使用自己的ENI和私有IP)
必须要有稳定的AWS Region连接
不适合Multiple ETL engines,它基于Spark,如果需要其他引擎,用Data Pipeling,EMR比较好,但是基本Spark无所不能了现在
也可以自主import一个Hive的元数据仓库到Glue中
Glue Development Endpoints:用notebook作为开发环境开发ETLjobs,通过VPC和SG进行控制,以分钟计费
依赖Apache Spark Structured Streaming库
grant select
permission的时候用的All columns
+ row
filter = row-level securityAll rows
+ specfic columns
= column-level securitycolumns
+ specific rows
= cell-level securityCreateDataCellsFilter
APIMSCK REPAIR TABLE
,是一个用于 Hive 和其他兼容 SQL 查询引擎(如 Amazon Athena)的命令。它用于修复分区表,更新 Hive 元存储中有关表分区的信息ALTER TABLE ADD PARTITION
是手动指定新分区的方法,而 MSCK REPAIR TABLE
是自动发现和注册新分区的方法通过IAM-based policy来限制database和tables级别的安全限制(database和Glue data catalog)
Create tabel new_table with (format = 'Parquet', write_compression = 'Snappy') as select ~
Create table new_orc_table with (extarnal_location = 's3 path~', format = 'ORC') as select ~
table_type
= ICEBERG
即可,用户可以在row层级之行安全变更操作select statement
集成各种AWS服务,包括IAM,VPC,CloudTrail等,DataPipeline可以用来schedule和start集群
EMR on EKS:支持在k8s上跑Spark作业,全托管服务,和k8s上的其他apps进行资源分享
Kinesis Stream
Kinesis Data Firehose
Kinesis Data Analytics
Kinesis Video Stream
MSK Serverless
Apache Hive是一个构建在Hadoop之上的数据仓库系统,用于在Hadoop分布式文件系统(HDFS)上进行数据的查询和分析。它提供了一种类似于SQL的语言,称为HiveQL(Hive Query Language),使用户能够使用SQL语法来查询存储在Hadoop中的大规模数据集。Hive将SQL查询转换为MapReduce作业,以便在Hadoop集群上并行处理数据。Hive适用于批处理、ETL(提取、转换、加载)操作和数据分析。它支持用户自定义函数(UDFs),并能与其他大数据工具如Pig和Spark集成。通过抽象复杂的MapReduce操作,Hive大大降低了大数据分析的门槛,方便数据工程师和分析师高效处理和分析海量数据。
Custom record locking 是一种手动实现的机制,用于在数据库中防止多个用户或进程同时访问和修改同一条记录,以避免数据不一致或冲突。尽管这种方法提供了灵活性,可以根据特定业务逻辑实现锁定策略,但其缺点在于可能引入复杂性和错误,增加开发和维护成本。此外,不当的锁定策略可能导致死锁、性能下降、资源浪费,以及更难以处理并发问题,特别是在分布式系统中。使用内置数据库锁定机制通常更可靠和高效。
Periodic compaction 是一种定期执行的存储优化技术,用于合并和整理数据文件,以减少碎片化、提高存储效率和提升读写性能。在数据库和大数据系统(如HBase、Cassandra、Kafka)中,数据随时间增多,可能会产生许多小文件或分散的存储块。通过周期性地合并这些文件,系统可以减少I/O开销,降低存储成本,并提高查询效率。这种方法需要在性能和资源利用之间进行平衡,避免频繁合并对系统造成负担。
Firecracker 是一种开源虚拟化技术,由 AWS 开发,专为运行无服务器计算和容器化应用而设计。它通过微虚拟机(MicroVMs)提供安全隔离和高效资源利用,启动速度快,资源开销低,非常适合于 FaaS(Function as a Service)和 CaaS(Container as a Service)环境。Firecracker 是用 Rust 语言编写的,具备内存保护和并发安全特性。它被广泛应用于 AWS Lambda 和 AWS Fargate 等服务中,以提供轻量级、高性能的计算实例。
安全:KMS,HTTPS传输,IAM Policy,SQS Access Policy
GCP的PubSub对标的是SQS和SNS两个服务。
Well-Architected tool