Определение таблицы Greenplum не показывает подробные дочерние таблицы/разделы и ключ распределения

\d+ {table_name}

не показывает подробную информацию о разделе и ключе распределения.

Я предполагаю, что может быть какой-то параметр конфигурации не был установлен, так как раньше он показывался идеально.

По умолчанию ранее показывались все дочерние таблицы/ключ распределения этой таблицы/и т.д.


person shahjapan    schedule 18.12.2014    source источник
comment
пожалуйста, прикрепите вывод, который вы видите для \d и \d+ для конкретной таблицы   -  person 0x0FFF    schedule 22.12.2014


Ответы (4)


если \d+ показывает вам ключ распределения; затем вы можете использовать приведенный ниже запрос для отображения ключа распределения.

выберите * из gp_distribution_policy, где localoid=(выберите oid из pg_class, где relname='My_table_name');

person Shivkumar Vishnupurikar    schedule 04.12.2015
comment
Моя проблема в том, что я знаю, что таблица разделена и хорошо распределена, однако \d+ не показывает все дочерние разделы, индексы и т. д. - person shahjapan; 06.12.2015

Бьюсь об заклад, у вас есть две таблицы с одинаковыми именами, одна из которых находится в общедоступной схеме, а другая - в другой. Если вы не укажете имя схемы, Greenplum, как и PostgreSQL, будет искать имя таблицы в схемах, перечисленных в вашем пути поиска. Будет отображено первое совпадение, основанное на порядке вашего search_path.

Обратите внимание, что я не указал имя схемы, а просто «\d store_sales», но указанная таблица — «public.store_sales»? Это было определено моим search_path.

    gpdb=# \d store_sales
                Table "public.store_sales"
            Column         |     Type     | Modifiers 
    -----------------------+--------------+-----------
     ss_sold_date_sk       | integer      | 
     ss_sold_time_sk       | integer      | 
     ss_item_sk            | integer      | not null
     ss_customer_sk        | integer      | 
     ss_cdemo_sk           | integer      | 
     ss_hdemo_sk           | integer      | 
     ss_addr_sk            | integer      | 
     ss_store_sk           | integer      | 
     ss_promo_sk           | integer      | 
     ss_ticket_number      | integer      | not null
     ss_quantity           | integer      | 
     ss_wholesale_cost     | numeric(7,2) | 
     ss_list_price         | numeric(7,2) | 
     ss_sales_price        | numeric(7,2) | 
     ss_ext_discount_amt   | numeric(7,2) | 
     ss_ext_sales_price    | numeric(7,2) | 
     ss_ext_wholesale_cost | numeric(7,2) | 
     ss_ext_list_price     | numeric(7,2) | 
     ss_ext_tax            | numeric(7,2) | 
     ss_coupon_amt         | numeric(7,2) | 
     ss_net_paid           | numeric(7,2) | 
     ss_net_paid_inc_tax   | numeric(7,2) | 
     ss_net_profit         | numeric(7,2) | 
    Distributed by: (ss_item_sk)

У меня также есть такое же имя таблицы в схеме tpcds, которая разделена. Когда я указываю имя схемы, я нахожу нужную таблицу, разделенную на разделы.

    gpdb=# \d tpcds.store_sales
      Append-Only Columnar Table "tpcds.store_sales"
            Column         |     Type     | Modifiers 
    -----------------------+--------------+-----------
     ss_sold_date_sk       | integer      | 
     ss_sold_time_sk       | integer      | 
     ss_item_sk            | integer      | not null
     ss_customer_sk        | integer      | 
     ss_cdemo_sk           | integer      | 
     ss_hdemo_sk           | integer      | 
     ss_addr_sk            | integer      | 
     ss_store_sk           | integer      | 
     ss_promo_sk           | integer      | 
     ss_ticket_number      | integer      | not null
     ss_quantity           | integer      | 
     ss_wholesale_cost     | numeric(7,2) | 
     ss_list_price         | numeric(7,2) | 
     ss_sales_price        | numeric(7,2) | 
     ss_ext_discount_amt   | numeric(7,2) | 
     ss_ext_sales_price    | numeric(7,2) | 
     ss_ext_wholesale_cost | numeric(7,2) | 
     ss_ext_list_price     | numeric(7,2) | 
     ss_ext_tax            | numeric(7,2) | 
     ss_coupon_amt         | numeric(7,2) | 
     ss_net_paid           | numeric(7,2) | 
     ss_net_paid_inc_tax   | numeric(7,2) | 
     ss_net_profit         | numeric(7,2) | 
    Checksum: t
    Number of child tables: 7 (Use \d+ to list them.)
    Distributed by: (ss_item_sk)

Использование \d+ показывает разделы.

    gpdb=# \d+ tpcds.store_sales
                                            Append-Only Columnar Table "tpcds.store_sales"
            Column         |     Type     | Modifiers | Storage | Compression Type | Compression Level | Block Size | Description 
    -----------------------+--------------+-----------+---------+------------------+-------------------+------------+-------------
     ss_sold_date_sk       | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_sold_time_sk       | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_item_sk            | integer      | not null  | plain   | none             | 0                 | 32768      | 
     ss_customer_sk        | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_cdemo_sk           | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_hdemo_sk           | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_addr_sk            | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_store_sk           | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_promo_sk           | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_ticket_number      | integer      | not null  | plain   | none             | 0                 | 32768      | 
     ss_quantity           | integer      |           | plain   | none             | 0                 | 32768      | 
     ss_wholesale_cost     | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_list_price         | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_sales_price        | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_ext_discount_amt   | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_ext_sales_price    | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_ext_wholesale_cost | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_ext_list_price     | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_ext_tax            | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_coupon_amt         | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_net_paid           | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_net_paid_inc_tax   | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
     ss_net_profit         | numeric(7,2) |           | main    | none             | 0                 | 32768      | 
    Checksum: t
    Child tables: store_sales_1_prt_no_date_set,
                  store_sales_1_prt_y_1998,
                  store_sales_1_prt_y_1999,
                  store_sales_1_prt_y_2000,
                  store_sales_1_prt_y_2001,
                  store_sales_1_prt_y_2002,
                  store_sales_1_prt_y_2003
    Has OIDs: no
    Options: appendonly=true, orientation=column
    Distributed by: (ss_item_sk)
person Jon Roberts    schedule 06.12.2015

Я знаю, что здесь не так

Если вы проверите DDL или сделаете дамп любой таблицы (используя pg_dump) с другого сервера (не напрямую из кластера GP), где установлен клиент и предоставлено соединение с сервером GP, сгенерированный DDL с помощью \d, \d+ или pg_dump, вы не будете получить класс распределения, который я только что попробовал для таблиц разделов, класс разделов также будет отсутствовать.

В то же время, если вы попробуете \d, \d+ или pg_dump из командной строки psql на главном сервере GP, вы получите как класс распределения, так и класс раздела в сгенерированном DDL таблицы.

Вы также можете попытаться сгенерировать DDL внешней таблицы с сервера ETL или любого другого сервера, на котором установлен клиент GP, из этой подсказки psql вы не получите класс Location.

Попробуйте это и верните

Спасибо

person Gurupreet Singh Bhatia    schedule 13.12.2015

если вы не используете psql, предлагаемый greenplum, никакая «функция greenplum» отображаться не будет. Пожалуйста, проверьте, правильно ли вы используете psql.

person dennis.s    schedule 07.01.2017
comment
Это должен быть комментарий, а не ответ, поскольку он требует подтверждения, а не прямого решения проблемы. В любом случае, добро пожаловать в StackOverflow :) - person koceeng; 07.01.2017