hive 配置 属性列表以及说明

本文深入探讨了Hive配置属性的意义及其在实际应用中的最佳实践,包括自动模式切换、并行处理、权限认证等多个关键配置项的详细解析。
HIVE 配置属性的意义,留着做笔记用,感谢大牛们的翻译
 
hive.exec.mode.local.auto  
决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行)   
默认值:true     
hive.exec.mode.local.auto.inputbytes.max  
如果hive.exec.mode.local.auto 为 true,当输入文件大小小于此阈值时可以自动在本地模式运行,默认是 128兆。   
默认值:134217728L     
hive.exec.mode.local.auto.tasks.max  
如果hive.exec.mode.local.auto 为 true,当 Hive Tasks(Hadoop Jobs)小于此阈值时,可以自动在本地模式运行。  
默认值:4     
hive.auto.convert.join  
是否根据输入小表的大小,自动将 Reduce 端的 Common Join 转化为 Map Join,从而加快大表关联小表的 Join 速度。   
默认值:false     
hive.mapred.local.mem  
Mapper/Reducer在本地模式的最大内存量,以字节为单位,0为不限制。   
默认值:0     
mapred.reduce.tasks    
所提交 Job 的 reduer 的个数,使用 Hadoop Client 的配置。     
默认值:1
hive.exec.scratchdir  
HDFS路径,用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果。  
默认值:/tmp/<user.name>/hive     
hive.metastore.warehouse.dir  
Hive 默认的数据文件存储路径,通常为 HDFS 可写的路径。   
默认值:"     
hive.groupby.skewindata  
决定 group by 操作是否支持倾斜的数据。   
默认值:false     
hive.merge.mapfiles  
是否开启合并 Map 端小文件,对于 Hadoop 0.20 以前的版本,起一首新的 Map/Reduce Job,对于 0.20 以后的版本,则是起使用 CombineInputFormat 的 MapOnly Job。   
默认值:true     
hive.merge.mapredfiles    
是否开启合并 Map/Reduce 小文件,对于 Hadoop 0.20 以前的版本,起一首新的 Map/Reduce Job,对于 0.20 以后的版本,则是起使用 CombineInputFormat 的 MapOnly Job。   
默认值:false     
hive.default.fileformat  
Hive 默认的输出文件格式,与创建表时所指定的相同,
可选项为 'TextFile' 、 'SequenceFile' 或者 'RCFile'。    'TextFile'      
hive.mapred.mode   
Map/Redure 模式,如果设置为 strict,将不允许笛卡尔积。   
默认值: 'nonstrict'     
hive.exec.parallel    
是否开启 map/reduce job的并发提交。   
默认值:  false     
hive.security.authorization.enabled  
Hive 是否开启权限认证。   
默认值:false     
hive.exec.plan    
Hive 执行计划的路径,会在程序中自动进行设置  
默认值:null     
hive.exec.submitviachild  
决定 map/reduce Job 是否应该使用各自独立的 JVM 进行提交(Child进程),默认情况下,使用与 HQL compiler 相同的 JVM 进行提交。   
默认值:false     
hive.exec.script.maxerrsize  
通过 TRANSFROM/MAP/REDUCE 所执行的用户脚本所允许的最大的序列化错误数。  
默认值:100000     
hive.exec.script.allow.partial.consumption  
是否允许脚本只处理部分数据,如果设置为 true ,因 broken pipe 等造成的数据未处理完成将视为正常。  
默认值:false     
hive.exec.compress.output  
决定查询中最后一个 map/reduce job 的输出是否为压缩格式。   
默认值:false     
hive.exec.compress.intermediate   
决定查询的中间 map/reduce job (中间 stage)的输出是否为压缩格式。   
默认值:false     
hive.intermediate.compression.codec  
中间 map/reduce job 的压缩编解码器的类名(一个压缩编解码器可能包含多种压缩类型),该值可能在程序中被自动设置。           
hive.intermediate.compression.type  
中间 map/reduce job 的压缩类型,如 "BLOCK""RECORD"。      
hive.exec.reducers.bytes.per.reducer  
每一个 reducer 的平均负载字节数。   
默认值:1000000000     
hive.exec.reducers.max  
reducer 个数的上限。   
默认值:999     
hive.exec.pre.hooks  
语句层面,整条 HQL 语句在执行前的 hook 类名。   
默认值:"     
hive.exec.post.hooks  
语句层面,整条 HQL 语句在执行完成后的 hook 类名。           
hive.exec.parallel.thread.number  
并发提交时的并发线程的个数。  
默认值:8     
hive.mapred.reduce.tasks.speculative.execution  
是否开启 reducer 的推测执行,与mapred.reduce.tasks.speculative.execution 作用相同。   
默认值:false     
hive.exec.counters.pull.interval  
客户端拉取 progress counters 的时间,以毫秒为单位。   
默认值:1000L      
hive.exec.dynamic.partition  
是否打开动态分区。   
默认值:false     
hive.exec.dynamic.partition.mode  
打开动态分区后,动态分区的模式,有 strict 和 nonstrict 两个值可选,strict 要求至少包含一个静态分区列,nonstrict 则无此要求。   
默认值:strict     
hive.exec.max.dynamic.partitions  
所允许的最大的动态分区的个数。  
默认值:1000     
hive.exec.max.dynamic.partitions.pernode  
单个 reduce 结点所允许的最大的动态分区的个数。  
默认值:100     
hive.exec.default.partition.name    
默认的动态分区的名称,当动态分区列为''或者null时,使用此名称。''    '__HIVE_DEFAULT_PARTITION__'      
hadoop.bin.path   
HadoopClient 可执行脚本的路径,该路径用于通过单独的 JVM 提交 job,使用 Hadoop Client 的配置。   
默认值:$HADOOP_HOME/bin/hadoop     
hadoop.config.dir   
HadoopClient 配置文件的路径,使用 HadoopClient 的配置。  
默认值:$HADOOP_HOME/conf     
fs.default.name   
Namenode 的 URL,使用 Hadoop Client 的配置。   
默认值:file:///     
map.input.file   
Map 的输入文件,使用 Hadoop Client 的配置。   
默认值:null     
mapred.input.dir   
Map 的输入目录,使用 Hadoop Client 的配置。   
默认值: null     
mapred.input.dir.recursive  
输入目录是否可递归嵌套,使用 HadoopClient 的配置。  
默认值:false     
mapred.job.tracker   
Job Tracker的 URL,使用 Hadoop Client 的配置,如果这个配置设置为 'local',将使用本地模式。   
默认值:local     
mapred.job.name   
Map/Reduce 的 job 名称,如果没有设置,则使用生成的 job name,使用 Hadoop Client 的配置。   
默认值:null     
mapred.reduce.tasks.speculative.execution  
Map/Reduce 推测执行,使用 Hadoop Client 的配置。   
默认值:null     
hive.metastore.metadb.dir  
Hive 元数据库所在路径。   
默认值:"     
hive.metastore.uris  
Hive 元数据的 URI,多个 thrift://地址,以英文逗号分隔。   
默认值:"     
hive.metastore.connect.retries  
连接到 Thrift 元数据服务的最大重试次数。   
默认值:3     
javax.jdo.option.ConnectionPassword  
JDO 的连接密码。   
默认值:"     
hive.metastore.ds.connection.url.hook  
JDO 连接 URL Hook 的类名,该 Hook 用于获得 JDO 元数据库的连接字符串,为实现了JDOConnectionURLHook 接口的类。  
默认值:"     
javax.jdo.option.ConnectionURL  
元数据库的连接 URL。   
默认值:"     
hive.metastore.ds.retry.attempts  
当没有 JDO 数据连接错误后,尝试连接后台数据存储的最大次数。  
默认值:1     
hive.metastore.ds.retry.interval  
每次尝试连接后台数据存储的时间间隔,以毫秒为单位。  
默认值:1000     
hive.metastore.force.reload.conf  
是否强制重新加载元数据配置,一但重新加载,该值就会被重置为 false。   
默认值:false     
hive.metastore.server.min.threads  
Thrift 服务线程池的最小线程数。   
默认值:8     
hive.metastore.server.max.threads  
Thrift 服务线程池的最大线程数。   
默认值:0x7fffffff     
hive.metastore.server.tcp.keepalive  
Thrift 服务是否保持 TCP 连接。   
默认值:true     
hive.metastore.archive.intermediate.original  
用于归档压缩的原始中间目录的后缀,这些目录是什么并不重要,只要能够避免冲突即可。  
默认值:'_INTERMEDIATE_ORIGINAL'     
hive.metastore.archive.intermediate.archived  
用于归档压缩的压缩后的中间目录的后缀,这些目录是什么并不重要,只要能够避免冲突即可。  
默认值:'_INTERMEDIATE_ARCHIVED'     
hive.metastore.archive.intermediate.extracted  
用于归档压缩的解压后的中间目录的后缀,这些目录是什么并不重要,只要能够避免冲突即可。  
默认值:'_INTERMEDIATE_EXTRACTED'     
hive.cli.errors.ignore  
是否忽略错误,对于包含多的 SQL 文件,可以忽略错误的行,继续执行下一行。  
默认值:false     
hive.session.id   
当前会话的标识符,格式为“用户名_时间”用于记录在 job conf 中,一般不予以手动设置。   
默认值:"     
hive.session.silent  
当前会话是否在 silent 模式运行。 如果不是 silent 模式,所以 info 级打在日志中的消息,都将以标准错误流的形式输出到控制台。   
默认值:false     
hive.query.string   
当前正在被执行的查询字符串。  
默认值:"     
hive.query.id   
当前正在被执行的查询的ID。   
默认值: "     
hive.query.planid   
当前正在被执行的 map/reduce plan 的 ID。   
默认值: "     
hive.jobname.length  
当前 job name 的最大长度,hive 会根据此长度省略 job name 的中间部分。   
默认值:50     
hive.jar.path   
通过单独的 JVM 提交 job 时,hive_cli.jar 所在的路径   
默认值:"     
hive.aux.jars.path   
各种由用户自定义 UDF 和 SerDe 构成的插件 jar 包所在的路径。   
默认值:"     
hive.added.files.path  
ADD FILE 所增加的文件的路径。   
默认值:"     
hive.added.jars.path  
ADD JAR 所增加的文件的路径。   
默认值: "     
hive.added.archives.path  
ADDARCHIEVE 所增加的文件的路径。  
默认值:"     
hive.table.name   
当前的 Hive 表的名称,该配置将通过 ScirptOperator 传入到用户脚本中。   
默认值:"     
hive.partition.name  
当前的 Hive 分区的名称,该配置将通过 ScriptOperator 传入到用户脚本中。   
默认值:"     
hive.script.auto.progress  
脚本是否周期性地向 Job Tracker 发送心跳,以避免脚本执行的时间过长,使 JobTracker 认为脚本已经挂掉了。  
默认值:false     
hive.script.operator.id.env.var  
用于识别 ScriptOperator ID 的环境变量的名称。   
默认值:'HIVE_SCRIPT_OPERATOR_ID'     
hive.alias   
当前的 Hive 别名,该配置将通过 ScriptOpertaor 传入到用户脚本中。   
默认值:"     
hive.map.aggr   
决定是否可以在 Map 端进行聚合操作   
默认值:true     
hive.join.emit.interval  
Hive Join 操作的发射时间间隔,以毫秒为单位。  
默认值:1000     
hive.join.cache.size  
Hive Join 操作的缓存大小,以字节为单位。  
默认值:25000     
hive.mapjoin.bucket.cache.size  
Hive MapJoin 桶的缓存大小,以字节为单位。  
默认值:100     
hive.mapjoin.size.key  
Hive MapJoin 每一行键的大小,以字节为单位。  
默认值:10000     
hive.mapjoin.cache.numrows  
Hive MapJoin 所缓存的行数。  
默认值:25000     
hive.groupby.mapaggr.checkinterval  
对于 Group By 操作的 Map 聚合的检测时间,以毫秒为单位。  
默认值:100000     
hive.map.aggr.hash.percentmemory  
Hive Map 端聚合的哈稀存储所占用虚拟机的内存比例。  
默认值:0.5     
hive.map.aggr.hash.min.reduction  
Hive Map 端聚合的哈稀存储的最小 reduce 比例。   
默认值:0.5     
hive.udtf.auto.progress   
Hive UDTF 是否周期性地报告心跳,当 UDTF 执行时间较长且不输出行时有用。  
默认值:false     
hive.fileformat.check  
Hive 是否检查输出的文件格式。   
默认值:true     
hive.querylog.location   
Hive 实时查询日志所在的目录,如果该值为空,将不创建实时的查询日志。  
默认值:'/tmp/$USER'     
hive.script.serde   
Hive 用户脚本的 SerDe。   
默认值:'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'     
hive.script.recordreader  
Hive 用户脚本的 RecordRedaer。   
默认值:'org.apache.hadoop.hive.ql.exec.TextRecordReader'     
hive.script.recordwriter  
Hive 用户脚本的 RecordWriter。   
默认值:'org.apache.hadoop.hive.ql.exec.TextRecordWriter'     
hive.hwi.listen.host  
HWI 所绑定的 HOST 或者 IP。   
默认值:'0.0.0.0'     
hive.hwi.listen.port  
HWI 所监听的 HTTP 端口。   
默认值:9999     
hive.hwi.war.file   
HWI 的 war 文件所在的路径。   
默认值:$HWI_WAR_FILE     
hive.test.mode   
是否以测试模式运行 Hive   
默认值:false     
hive.test.mode.prefix  
Hive 测试模式的前缀。   
默认值:'test_'     
hive.test.mode.samplefreq  
Hive 测试模式取样的频率,即每秒钟取样的次数。  
默认值:32     
hive.test.mode.nosamplelist  
Hive 测试模式取样的排除列表,以逗号分隔。  
默认值:"     
hive.merge.size.per.task  
每个任务合并后文件的大小,根据此大小确定 reducer 的个数,默认 256 M。   
默认值:256000000     
hive.merge.smallfiles.avgsize  
需要合并的小文件群的平均大小,默认 16 M。   
默认值:16000000     
hive.optimize.skewjoin  
是否优化数据倾斜的 Join,对于倾斜的 Join 会开启新的 Map/Reduce Job 处理。   
默认值:false     
hive.skewjoin.key    倾斜键数目阈值,超过此值则判定为一个倾斜的 Join 查询。   
默认值: 1000000     
hive.skewjoin.mapjoin.map.tasks  
处理数据倾斜的 Map Join 的 Map 数上限。   
默认值: 10000     
hive.skewjoin.mapjoin.min.split  
处理数据倾斜的 Map Join 的最小数据切分大小,以字节为单位,默认为32M。   
默认值:33554432     
mapred.min.split.size  
Map ReduceJob 的最小输入切分大小,与 HadoopClient 使用相同的配置。  
默认值:1     
hive.mergejob.maponly  
是否启用 Map Only 的合并 Job。   
默认值:true     
hive.heartbeat.interval  
Hive Job 的心跳间隔,以毫秒为单位。   
默认值:1000     
hive.mapjoin.maxsize  
Map Join 所处理的最大的行数。超过此行数,Map Join进程会异常退出。   
默认值:1000000     
hive.hashtable.initialCapacity  
Hive 的 Map Join 会将小表 dump 到一个内存的 HashTable 中,该 HashTable 的初始大小由此参数指定。   
默认值:100000     
hive.hashtable.loadfactor  
Hive 的 Map Join 会将小表 dump 到一个内存的 HashTable 中,该 HashTable 的负载因子由此参数指定。   
默认值:0.75     
hive.mapjoin.followby.gby.localtask.max.memory.usage  
MapJoinOperator后面跟随GroupByOperator时,内存的最大使用比例   
默认值:0.55     
hive.mapjoin.localtask.max.memory.usage  
Map Join 的本地任务使用堆内存的最大比例  
默认值:0.9     
hive.mapjoin.localtask.timeout  
Map Join 本地任务超时,淘宝版特有特性  
默认值:600000     
hive.mapjoin.check.memory.rows  
设置每多少行检测一次内存的大小,如果超过hive.mapjoin.localtask.max.memory.usage 则会异常退出,Map Join 失败。   
默认值:100000     
hive.debug.localtask  
是否调试本地任务,目前该参数没有生效  
默认值:false     
hive.task.progress   
是否开启 counters ,以记录 Job 执行的进度,同时客户端也会拉取进度 counters。   
默认值:false     
hive.input.format   
Hive 的输入 InputFormat。   
默认是org.apache.hadoop.hive.ql.io.HiveInputFormat,
其他还有org.apache.hadoop.hive.ql.io.CombineHiveInputFormat     
hive.enforce.bucketing  
是否启用强制 bucketing。   
默认值:false     
hive.enforce.sorting  
是否启用强制排序。   
默认值:false     
hive.mapred.partitioner  
Hive 的 Partitioner 类。   
默认值:'org.apache.hadoop.hive.ql.io.DefaultHivePartitioner'     
hive.exec.script.trust  
Hive ScriptOperator For trust   
默认值:false     
hive.hadoop.supports.splittable.combineinputformat  
是否支持可切分的CombieInputFormat   
默认值:false     
hive.optimize.cp   
是否优化列剪枝。   
默认值:true     
hive.optimize.ppd   
是否优化谓词下推。   
默认值:true     
hive.optimize.groupby  
是否优化 group by。   
默认值:true     
hive.optimize.bucketmapjoin  
是否优化 bucket map join。   
默认值:false     
hive.optimize.bucketmapjoin.sortedmerge  
是否在优化 bucket map join 时尝试使用强制 sorted merge bucketmap join。   默认值:false     
hive.optimize.reducededuplication  
是否优化 reduce 冗余。   
默认值:true     
hive.hbase.wal.enabled  
是否开启 HBase Storage Handler。   
默认值:true     
hive.archive.enabled  
是否启用 har 文件。   
默认值:false     
hive.archive.har.parentdir.settable  
是否启用 har 文件的父目录可设置。   
默认值:false     
hive.outerjoin.supports.filters  
是否启动外联接支持过滤条件。  
默认值:true     
hive.fetch.output.serde  
对于 Fetch Task 的 SerDe 类   
默认值:'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'     
hive.semantic.analyzer.hook  
Hive 语义分析的 Hook,在语义分析阶段的前后被调用,用于分析和修改AST及生成的执行计划,以逗号分隔。  
默认值:null     
hive.cli.print.header  
是否显示查询结果的列名,默认为不显示。  
默认值:false     
hive.cli.encoding   
Hive 默认的命令行字符编码。   
默认值:'UTF8'     
hive.log.plan.progress  
是否记录执行计划的进度。   
默认值:true     
hive.pull.progress.counters  
是否从 Job Tracker 上拉取 counters,淘宝特有配置项。   
默认值:true     
hive.job.pre.hooks   
每个 Job 提交前执行的 Hooks 列表,以逗号分隔,淘宝特有配置项。  
默认值:"     
hive.job.post.hooks  
每个 Job 完成后执行的 Hooks 列表,以逗号分隔,淘宝特有配置项。  
默认值:"     
hive.max.progress.counters  
Hive 最大的进度 couters 个数,淘宝特有配置项。   
默认值:100     
hive.exec.script.wrapper  
ScriptOperator 脚本调用的封装,通常为脚本解释程序。例如,可以把该变量值的名称设置为"python",那么传递到 Script Operator 的脚本将会以"python<script command>"的命令形式进行调用,如果这个值为null或者没有设置,那么该脚本将会直接以"<scriptcommand>" 的命令形式调用。  
默认值:null     
hive.check.fatal.errors.interval  
客户端通过拉取 counters 检查严重错误的周期,以毫秒为单位,淘宝特有配置项。  
默认值:5000L
<think>好的,我现在需要回答用户关于Hive属性的问题。首先,我得回忆一下Hive的基本知识,特别是属性的部分。Hive是建立在Hadoop上的数据仓库工具,用于处理结构化数据,所以结构的设计和属性设置很重要。 用户问的是Hive属性有哪些。可能指的是在创建时可以指定的各种属性,比如存储格式、分区、分桶等。可能需要分几个大类来介绍。先整理一下常见的属性类别。 首先,存储格式,比如TEXTFILE、ORC、PARQUET这些,不同的格式有不同的优缺点,比如ORC适合压缩和查询性能。然后是分区和分桶,这是Hive优化查询的重要机制。分区可以将数据按某个字段分成不同的目录,分桶则是将数据分成更小的文件,基于哈希。 接下来是的其他属性,比如行格式(行分隔符、字段分隔符)、注释、外部和内部的区别。外部的数据存储在HDFS上,删除时不会删除数据,而内部则会。还有的生命周期属性,比如是否临时,或者设置的保留时间。 另外,属性还包括SERDE(序列化与反序列化),用于处理数据读写时的格式。比如使用OpenCSVSerde来处理CSV文件。还有的压缩属性,比如设置压缩算法来减少存储空间。 可能还需要提到的元数据信息,比如存储在Hive Metastore中的信息,比如的创建者、创建时间、最后访问时间等。以及的保护属性,比如权限设置,访问控制等,但这可能更多是HDFS层面的。 用户可能还想了解如何查看属性,比如使用DESCRIBE EXTENDED table_name命令,或者通过Hive Metastore的元数据查询。 需要确保分类清晰,每个属性类别下有具体的例子和说明。例如,在存储格式里,要说明各个格式的特点和使用场景。在分区和分桶部分,要解释它们的作用和如何设置。 还需要注意一些高级属性,比如事务性属性(ACID支持),这在Hive 0.14之后支持,需要配置特定的存储格式(如ORC)和属性(如'transactional'='true')。 可能容易遗漏的点包括:的输入输出格式(INPUTFORMAT和OUTPUTFORMAT),这些在创建时指定,影响数据如何读写。还有存储位置属性(LOCATION),指定数据在HDFS中的路径。 总结一下,Hive属性大致可以分为: 1. 存储相关属性(格式、位置、压缩) 2. 结构优化属性(分区、分桶) 3. 元数据属性(注释、创建信息) 4. 序列化与反序列化(SERDE) 5. 类型(外部、内部、临时) 6. 事务性支持属性 7. 其他属性(行格式、字段分隔符等) 需要确保每个部分都有简明扼要的解释,并举例说明,比如创建时的DDL语句示例,这样用户更容易理解。同时要避免使用过于专业的术语,保持解释的易懂性。 最后,检查是否有遗漏的重要属性,比如的保护机制或生命周期管理相关的属性,或者Hive新版本中引入的属性。例如,是否支持动态分区,或者的缓存设置等。这些可能也属于属性的一部分,需要根据用户的背景知识决定是否包含。</think>Hive属性是定义结构和行为的关键参数,主要用于控制数据存储、格式、分区等。以下是常见的分类及说明: --- ### **一、基础属性** 1. **类型** - **内部(Managed Table)** Hive管理数据生命周期,删除时数据一起删除。 示例:`CREATE TABLE table_name (...);` - **外部(External Table)** 数据存储在HDFS指定路径,删除仅删除元数据。 示例:`CREATE EXTERNAL TABLE ... LOCATION '/hdfs/path';` - **临时(Temporary Table)** 会话级临时,会话结束自动删除。 示例:`CREATE TEMPORARY TABLE ...;` 2. **存储格式** - `STORED AS`:指定文件格式,如: - `TEXTFILE`(默认,文本格式) - `ORC`(高效列式存储,支持压缩和索引) - `PARQUET`(列式存储,兼容多种计算框架) - `AVRO`、`SEQUENCEFILE`等。 示例:`STORED AS ORC;` 3. **行格式(Row Format)** - 定义字段分隔符、集合分隔符等: ```sql ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS TERMINATED BY ',' MAP KEYS TERMINATED BY ':' ``` --- ### **二、优化属性** 1. **分区(Partitioning)** 按目录划分数据,提升查询效率。 示例:`PARTITIONED BY (dt STRING, country STRING);` 2. **分桶(Bucketing)** 将数据按哈希分散到固定数量的文件中,优化JOIN和采样。 示例:`CLUSTERED BY (user_id) INTO 32 BUCKETS;` 3. **排序(Sorting)** 指定分桶内的排序字段。 示例:`SORTED BY (timestamp DESC) INTO 32 BUCKETS;` --- ### **三、序列化与压缩** 1. **SERDE(序列化/反序列化)** 处理非标准格式数据(如JSON、CSV)。 示例:`ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe';` 2. **压缩属性** - 级压缩:`SET hive.exec.compress.output=true;` - 文件格式压缩(如ORC):`TBLPROPERTIES ("orc.compress"="SNAPPY");` --- ### **四、高级属性** 1. **事务支持(ACID)** Hive 0.14+支持事务,需配置ORC格式和属性: ```sql CREATE TABLE acid_table (...) STORED AS ORC TBLPROPERTIES ('transactional'='true'); ``` 2. **注释** 添加元数据描述:`COMMENT '用户行为日志';` 3. **存储路径(Location)** 指定HDFS路径:`LOCATION '/hive/warehouse/logs';` 4. **保护属性** 设置权限(需HDFS支持): `TBLPROPERTIES ('hive.security.authorization.enabled'='true');` --- ### **五、查看属性** 1. 使用 `DESCRIBE EXTENDED table_name;` 查看详细信息。 2. 查询元数据库(如MySQL中的Hive Metastore)。 --- **示例完整DDL**: ```sql CREATE EXTERNAL TABLE user_logs ( user_id INT, action STRING ) PARTITIONED BY (dt STRING) CLUSTERED BY (user_id) INTO 50 BUCKETS STORED AS ORC LOCATION '/hive/logs' TBLPROPERTIES ( 'orc.compress'='SNAPPY', 'comment'='用户行为日志' ); ``` 通过合理配置属性,可优化存储效率、查询性能和运维管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值