当前位置: 首页 > 面试题库 >

如何在Amazon Redshift中创建索引

郭乐湛
2023-03-14
问题内容

我正在尝试在Amazon Redshift中创建索引,但收到错误

create index on session_log(UserId);

UserId 是一个整数字段。


问题答案:

如果尝试在Redshift表上创建索引(带有名称):

create index IX1 on "SomeTable"("UserId");

您会收到错误消息

执行SQL命令时发生错误:在“ SomeTable”(“ UserId”)上创建索引IX1错误:Redshift表不支持SQL命令“在”
SomeTable“(” UserId“))上创建索引IX1。

这是因为,与其他数据仓库一样,Redshift使用列存储,因此,其他RDBMS中使用的许多索引技术(例如添加非聚集索引)都不适用。

但是,您可以选择为每个表提供一个排序键,还可以使用分配键来分片数据来影响性能,并为每列选择适当的压缩编码,以最大程度地减少存储和I / O开销。

例如,在您的情况下,您可以选择UserId用作排序键:

create table if not exists "SomeTable"
(
    "UserId" int,
    "Name" text
)
sortkey("UserId");

你可能想读几引物像
这些



 类似资料:
  • 有两个问题看起来很相似,但它们不是同一个问题:这里和这里。它们都调用的方法,例如或,我知道这会返回一个。我要问的是如何将(class)对象本身转换为。我将在下面举例说明。 构建一个示例,如下所示。 上面的应该如下所示(显然有不同的数字)。 我想做的是按列名称和采取分组(按此顺序),这样我就可以得到一个由列名称和采取构建的多索引索引,如下所示。 我如何实现这一点?如果我做了,那么是一个实例。正确的做

  • 我使用的是弹性6.3.2中的IndexRequest。现在我更改为版本7.6.2。如何使用CreateIndexRequest执行以下相同的步骤? 弹性Rest高级客户端6.3.2代码: 切换到7.6.2后,我无法在CreateIndexRequest中创建类型、id和源。

  • 本文向大家介绍如何使用Java在MongoDB中创建索引?,包括了如何使用Java在MongoDB中创建索引?的使用技巧和注意事项,需要的朋友参考一下 在MongoDB中创建索引,您需要使用createIndex()方法。 语法 其中的键是要在其上创建索引的文件的名称,而1是升序。要以降序创建索引,您需要使用-1。 在Java中,您可以使用 createIndex()方法创建索引,该方法需要传递索

  • 问题内容: 在用户属于特定组织的情况下,我们具有以下实体关系。我的查询看起来像是“从org =:org用户选择”或“从org =:org用户输入和type =:type选择” 我在User类上有单独的索引。由于外键元素上的索引,因此第一个查询会很好。第二个查询是否对组织和类型列要求多列索引。如果是这样,我应该如何注释以创建一个这样的索引。 问题答案: 使用hibernate特定注释可以做到这一点。

  • 问题内容: 我使用以下代码在logstash.conf中创建索引 为了创建另一个索引,我通常在上面的代码中用另一个索引名称替换索引名称。有什么办法可以在同一文件中创建许多索引?我是ELK的新手。 问题答案: 您可以根据其中一个字段的值在索引名称中使用模式。在这里,我们使用字段的值来命名索引: 您还可以将多个输出用于同一ES主机或不同ES主机: 或者,您可能想根据某个变量将文档路由到不同的索引: 更

  • 问题内容: 我需要为索引禁用自动索引创建,但需要允许另一个索引。如何仅通过Elasticsearch禁用特定索引的自动索引创建?我试过了 在elasticsearch.yml文件中,但似乎禁用了所有的所有自动索引。有人可以帮我吗? 问题答案: 除了true / false值之外,“ action.auto_create_index”有点复杂。我们可以使用索引名称中出现的模式进行识别,并可以指定是否