小编rm1*_*345的帖子

postgres:时间戳字段上的索引

我是 postgres 的新手,我有一个关于时间戳类型的问题。

为了设置场景,我有一张如下所示的表格:

CREATE TABLE IF NOT EXISTS tbl_example (
    example_id bigint not null,
    example_name text,
    example_timestamp timestamp,
    primary key (example_id)
);
Run Code Online (Sandbox Code Playgroud)

现在我想运行一个查询,使用时间戳为我查找基于特定日期的示例列表。

例如,将始终运行的常见查询是:

select example_id, example_name, example_timestamp where example_timestamp = date_trunc('datepart', example_timestamp) order by example_timestamp desc;
Run Code Online (Sandbox Code Playgroud)

但是,为了加快搜索过程,我想在 example_timestamp 字段中添加一个索引:

CREATE INDEX idx_example_timestamp on tbl_example(example_timestamp);
Run Code Online (Sandbox Code Playgroud)

我的问题是 postgres 如何在时间戳上执行索引 - 换句话说,它会根据日期/时间索引时间戳,还是会进入秒/毫秒等?

或者,我正在考虑创建一个带有“example_date”的新列,并在该列上建立索引以简化事情。我并不热衷于同时拥有日期和时间戳字段,因为我可以从时间戳字段中获取日期,但出于索引目的,我认为最好创建一个单独的字段。

如果有人对此有任何想法,将不胜感激?

谢谢。

postgresql jpa-2.0 postgresql-9.4

15
推荐指数
2
解决办法
2万
查看次数

Apache Kafka:重播主题中的消息

我正在考虑使用Apache Kafka作为事件存储来在微服务中存储事件.

我通过各种博客阅读的一件事是,Kafka可以被认为是单一的事实来源,其中Kafka日志将存储给定主题的所有事件.

我想知道Kafka是否有能力从一开始就重播消息(例如,如果发生硬盘驱动器/网络崩溃)?

(请注意,我发现在主题目录下的/ tmp文件夹中存储了一些日志).有没有人知道可以调用以重播主题中的消息的任何命令(如果有的话)?

apache-kafka spring-kafka

9
推荐指数
2
解决办法
8026
查看次数

AWS RDS Postgres:更改 rds.logic_replication = 1 后,WAL_LEVEL 未设置为“逻辑”

我正在设置 Debezium 以与 AWS Aurora Postgres(postgres 版本 12.6)配合使用。

为了让 Debezium 工作,WAL(预写日志记录)必须设置为“逻辑”而不是“副本”。在 AWS 上,这需要 DBA 将rds.logical_replication参数组中的参数设置为 1。

以上就完成了。数据库实例已重新启动。

为了验证 WAL 级别是否更改为“逻辑”,我运行了以下查询:

show wal_level

然而,在目标数据库上的 postgres 中运行此查询后,结果显示replica

我进一步查看了AWS管理控制台中的日志事件,我看到了这些日志事件。

在此输入图像描述

有人知道为什么会这样吗?在另一个环境中,我们能够成功地将 设为rds.logical_replication1,并且在数据库重新启动后,WAL 被设为logical。但对于我们的主要环境来说,情况并非如此。从参数组来看,这两个环境之间是相同的。

任何帮助/建议表示赞赏。谢谢。

postgresql amazon-web-services amazon-aurora postgresql-12

4
推荐指数
1
解决办法
4980
查看次数

Apache NIFI:将文件添加到目录后直接运行Java进程

我是Apache NIFI的新手.

我想设置一个流程,其中有一个文件可以放入"热文件夹".如果此文件夹检测到放入其中的文件,则此文件将被放入另一个名为"input"的文件夹中.将文件复制到输入文件夹后,我想触发Java程序运行.

我接近这个的方法是创建一个'GETFILE'处理器来从hot文件夹中获取文件.然后创建一个PUTFILE处理器将其放入输入文件夹.所以你可以想象'GETFILE'和'PUTFILE'处理器之间存在连接.这按预期工作.

然而,我面临的挑战是在文件被复制到INPUT文件夹时(即在执行PUTFILE处理器之后)触发我的Java进程运行.我无法在PUTFILE和EXECUTEPROCESS处理器之间创建链接(作为在将文件从hot文件夹复制到输入文件夹之后告诉NIFI运行Java进程的一种方法).我似乎无法在PUTFILE和EXECUTEPROCESS处理器之间获得连接箭头(因为NIFI不会让我).

基于以上描述,是否有人可以推荐一种方法来告诉NIFI在检测到文件被添加到输入文件夹后触发Java应用程序运行?

谢谢.

java apache-nifi

2
推荐指数
1
解决办法
1850
查看次数

Spring Cloud Gateway:如何创建过滤器

我是Spring Cloud Gateway的新手。

我一直在观看SpringDeveloper频道中的一些youtube视频,并正在处理以下示例:

@Bean
public RouteLocator myRoutes(RouteLocatorBuilder builder) {

    return builder.routes()
            .route(r -> r.path("/get")
            .addRequestHeader("X-SpringOne", "Awesome")
            .uri("http://httpbin.org:80"))
            .build();
}
Run Code Online (Sandbox Code Playgroud)

在研究Spring Cloud Gateway之前,我还研究过Spring Netflix Zuul。据我所知,在Netflix的Zuul,你可以通过创建一个扩展类创建过滤器ZuulFilter,并把它定义为prepostroute,等。

但是我想知道如何使用Spring云网关创建PRE / POST过滤器?

任何帮助/建议深表感谢。

谢谢。

spring-boot spring-cloud spring-cloud-netflix

2
推荐指数
1
解决办法
7387
查看次数