Crontab调度Greenplum定时任务样例

总有人问Greenplum如何跑定时任务,Greenplum为何没有内部集成定时任务。第二个话题有点太大,我不是核心开发人员回答不了,愚以为在MPP里面跑太多内置定时任务潜在风险太高,另外分析环境中,这种一般都是交由外部系统控制的吧。

今天给大家分享一个最简单的定时任务样例:采用Linux Crontab定时调度

不太了解Crontab的同学可以去:https://www.runoob.com/linux/linux-comm-crontab.html 简单了解一下,这里我就不做搬运工了。

下面是样例的简单逻辑:

1、存储过程编写

存储过程用来编写业务逻辑,封装一些我们想在mpp中定时执行的内容。

我这里就简单采用version()这个函数,假装作为我们自己编写的存储过程。

2、测试调用

存储过程编写完成后,在gpdb里面和linux命令行均进行测试,如下:

[gposs6@centos7 ~]$ psql
psql (9.4.24)
Type "help" for help.
 
postgres=# select version();
                                                                                           version
 
--------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------
 PostgreSQL 9.4.24 (Greenplum Database 6.0.0-beta.1 build dev) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39
), 64-bit compiled on Sep 11 2020 14:35:28
(1 row)
 
postgres=# \q
[gposs6@centos7 ~]$ psql -d postgres -c "select version()"
                                                                                           version
 
--------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------
 PostgreSQL 9.4.24 (Greenplum Database 6.0.0-beta.1 build dev) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39
), 64-bit compiled on Sep 11 2020 14:35:28
(1 row)
 
[gposs6@centos7 ~]$

3、Crontab配置

上面步骤2中,如果测试均没有问题,就可以配置定时任务,注意两点:

  • 需要配置在数据库用户下,不要配置在root用户下,root权限太大,生产有风险;
  • 为了避免环境变量及命令调度问题,建议采用绝对路径;

样例如下:

[gposs6@centos7 ~]$ whereis psql
psql: /usr/bin/psql.bak /home/gposs6/gpdb/bin/psql /usr/share/man/man1/psql.1.gz
[gposs6@centos7 ~]$ crontab -l
* * * * * source /home/gposs6/gpdb/greenplum_path;/home/gposs6/gpdb/bin/psql -d postgres -c "select version()" >> /home/gposs6/version.log 2>&1
[gposs6@centos7 ~]$ tail -f version.log
                                                                                           version
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.4.24 (Greenplum Database 6.0.0-beta.1 build dev) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit compiled on Sep 11 2020 14:35:28
(1 row)

注意:如果定义了Crontab但是过了时间没反应,没有日志生成,请仔细检查命令,或参考/var/log下的cron、maillog日志信息。

本文从CSDN(点击查看原文)转载而来。不代表烟海拾贝立场,如若转载,请注明出处:https://somirror.com/3688.html

(0)
上一篇 2023-01-17 10:14
下一篇 2023-01-17 11:13

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注