天天看点

Greenplum操作1. 管理命令2. SQL3. 流处理

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

           

继续阅读