Hive创建外部表导入不同格式的数据至数据仓库

Hive创建外部表导入不同格式的数据至数据仓库

一、数据仓库的层级结构

原始数据层:ODS(Operational Data Store)

数据明细层:DWD(Data Warehouse Detail)

数据汇总层:DWS(Data Warehouse Summary)

数据集市层:DWM (Data Warehouse Market)

二、外部表的定义(创建外部表)

在Hive中,外部表是一种用于逻辑映射外部数据源的表,无需将数据复制到Hive仓库中。外部表提供了对原始数据的逻辑视图,允许在数据仓库中引用原始数据,而不必在本地存储数据。

创建外部表的过程主要发生在数据仓库的原始数据层(ODS)和数据明细层(DWD)。这两个层级负责采集、存储、清洗、集成和加工原始数据,因此在这两个阶段通常会创建外部表来管理数据。

以下是创建外部表的基本语法:

-- external table
CREATE EXTERNAL TABLE IF NOT EXISTS table_name (
    -- 列定义
    column1 data_type,
    column2 data_type,
    ...
)
-- 指定了使用的序列化/反序列化器 (SerDe), OpenCSVSerde
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
-- 指定 SerDe 的属性
WITH SERDEPROPERTIES (    
    'separatorChar' = ',', -- OpenCSVSerde默认项下同
    'quoteChar' = '"',
    'escapeChar' = '\\'
)
-- 指定了输入数据的格式
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
-- 指定了输出数据的格式
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
-- 可选:表的存储位置
LOCATION '/your/hdfs/path/table_name'
-- 可选:指定分区列(如果表是分区表)
PARTITIONED BY (partition_column1 data_type, partition_column2 data_type, ...)
-- 可选࿱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值