CREATE TABLE 语句中的“pool_name”是啥意思?

Posted

技术标签:

【中文标题】CREATE TABLE 语句中的“pool_name”是啥意思?【英文标题】:What does 'pool_name' mean in CREATE TABLE-statement?CREATE TABLE 语句中的“pool_name”是什么意思? 【发布时间】:2019-06-14 09:31:55 【问题描述】:

在 CREATE TABLE-statement 末尾的 Impala 中,您可以按照我的理解设置复制因子:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
    ...
    [CACHED IN 'pool_name' [WITH REPLICATION = integer] | UNCACHED]

总之,我有点疑惑pool_name 指的是什么。这是 HDFS 中存储数据的路径吗?

【问题讨论】:

【参考方案1】:

不完全是,它实际上是指使用hdfs cacheadmin -addPool... 命令定义的HDFS 池,请参阅hdfs command guide。反过来,池确实包含一堆 cache 指令,这些指令引用要缓存的 hdfs 路径。来自 apache 文档:

缓存池是一个管理实体,用于管理 缓存指令。缓存池具有类似 UNIX 的权限, 限制哪些用户和组可以访问该池。写 权限允许用户添加和删除缓存指令到 水池。读取权限允许用户列出缓存指令 池,以及其他元数据。未使用执行权限。

缓存池也用于资源管理。池可以强制执行 最大限制,限制可以缓存的字节数 通过池中的指令汇总。通常,池的总和 限制将大约等于聚合内存的数量 保留用于集群上的 HDFS 缓存。缓存池还跟踪 帮助集群用户确定什么是和 应该被缓存。

池还可以强制执行最大生存时间。这限制了 添加到池中的指令的最大过期时间。

有关如何在 Impala 中使用此 HDFS 功能的详细信息,请参阅Impala Guide。

【讨论】:

以上是关于CREATE TABLE 语句中的“pool_name”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

通过阅读 Python 中的 Oracle DDL 语句为 Redshift 创建 Create Table 语句

是否可以在 db2 中的 create table 语句本身中定义索引?

SQL 语句“CREATE TABLE TRIP...”中的语法错误

是否可以回滚主要 SQL 数据库中的 CREATE TABLE 和 ALTER TABLE 语句?

如何从 db2 中的现有表中获取 CREATE TABLE 语句?

如何以编程方式为 Django 中的给定模型生成 CREATE TABLE SQL 语句?