欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Greenplum操作

程序员文章站 2024-03-22 10:20:29
...

1. 管理命令

2.1 数据库启动


$ gpstart [-a|-m]

# -a: 直接启动,不提示终端用户输入确认

# -m: 只启动master实例,主要是故障处理时使用

2.2 数据库停止


$ gpstop [-a|-m|-f|-u]

# -a: 直接停止,不提示终端用户输入确认

# -m: 只停止master实例

# -f: 停止数据库,中断所有数据库连接,回滚正在运行的事务

# -u: 不停止数据,只加载pg_hba.conf和postgresql.conf中的运行时参数。

2.3 查看数据分布


select gp_segment_id, count(1) from tablename group by 1;

2.4 收集统计信息,回收空间

定期使用vacuum analyze tablename收集统计信息,回收空间。尤其是大数据量删除或导入后。

2.5 实例恢复

通过gpstate或gp_segment_configuration发现实例down掉,可以用gprecoverseg启动down掉的实例。

2. SQL

数据库、表名、结构


# 通过命令行查询

\d 数据库 —— 得到所有表的名字

\d 表名 —— 得到表结构



# 通过SQL语句查询

"select * from pg_tables" —— 得到当前db中所有表的信息(这里pg_tables是系统视图)

"select tablename from pg_tables where schemaname='public'" —— 得到所有用户自定义表的名字(这里"tablename"字段是表的名字,"schemaname"是schema的名字。用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下)

执行计划


explain [analyze] sql

3. 流处理

kafka(json) -> greenplum

安装扩展包


# 登录对应数据库

$ psql -d postgres



postgres=# CREATE EXTENSION gpss;

Yaml配置文件


$ vi ods_mac_track.yaml



DATABASE: bigdataDB

USER: gpadmin

HOST: host106

PORT: 5432

KAFKA:

  INPUT:

    SOURCE:

      BROKERS: host106:9092,host107:9092,host108:9092

      TOPIC: mac_data

    COLUMNS:

      - NAME: jdata

        TYPE: json

    FORMAT: json

    ERROR_LIMIT: 1000

  OUTPUT:

    TABLE: ods_mac_track

    MAPPING:

      - NAME: track_id

        EXPRESSION: (jdata->>'track_id')::text

      - NAME: mac

        EXPRESSION: (jdata->>'mac')::text

      - NAME: source

        EXPRESSION: (jdata->>'source')::int4

      - NAME: service_code

        EXPRESSION: (jdata->>'service_code')::text

      - NAME: geo_point

        EXPRESSION: (jdata->>'geo_point')::point

      - NAME: geo_hash7

        EXPRESSION: (jdata->>'geo_hash7')::text

      - NAME: geo_md5

        EXPRESSION: (jdata->>'geo_md5')::text

      - NAME: start_time

        EXPRESSION: (jdata->>'start_time')::timestamp

      - NAME: end_time

        EXPRESSION: (jdata->>'end_time')::timestamp

      - NAME: phone

        EXPRESSION: (jdata->>'phone')::text

      - NAME: stay_time

        EXPRESSION: (jdata->>'stay_time')::int8

  COMMIT:

    MAX_ROW: 10000

启动


gpkafka load [--quit-at-eof] [{--force-reset-earliest | --force-reset-latest}] [--debug-port portnum] [-v | --verbose] config.yaml

gpkafka load {-h | --help} 



$ gpkafka load ods_mac_track.yaml

相关标签: greenplum