как использовать dplyr и RPostgreSQL для подключения r к красному смещению?

Я пытаюсь подключить R к Redshift с помощью dplyr и RPostgreSQL на основе метода из https://blogs.aws.amazon.com/bigdata/post/Tx1G8828SPGX3PK/Connecting-R-with-Amazon-Redshift

Теперь я знаю свою базу данных, хост-порт, пользователя и пароль. Итак, вот мой код:

> myRedshift <- src_postgres('aaa',
                            host = 'aaa-aaa-aaa.com',
                            port = 8000,
                            user = "xy", 
                            password = "xy")

После запуска этой строки у меня есть список myRedshift. Это выглядит нормально. Но когда я бегу:

  a <- tbl(myRedshift, "base_posdata")

Проблема такая: в базе ааа есть пара папок типа а1, а2, а3. Таблица base_posdata находится под a1. Итак, должно быть так:

a <- tbl(myRedshift, "a1//base_posdata")

Формат конечно не правильный. Поэтому, когда я использую приведенный выше код (a ‹- tbl(myRedshift, "base_posdata")), у меня появляется сообщение об ошибке:

Error in postgresqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (could not Retrieve the result : ERROR: relation "base_posdata" does not exist)

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


person Feng Chen    schedule 11.10.2016    source источник
comment
Модель базы данных Postgres включает базы данных, схемы, таблицы и столбцы. Убедитесь, что вы правильно обращаетесь к каждому из них в своем запросе.   -  person Tim Biegeleisen    schedule 11.10.2016
comment
Если я использую Alteryx для подключения данных в Redshift. Я могу выбрать данные следующим образом: 1. выбрать таблицу или указать запрос, 2. нажать кнопку «Таблицы», 3. выбрать таблицу, которая отображается как aaa.a1.base_posdata. Не могли бы вы объяснить, может ли это означать, что это таблица или что-то еще? И как мне с этим справиться? Спасибо   -  person Feng Chen    schedule 11.10.2016


Ответы (1)


Просто найдите способ справиться с этим: используя sql, например:

> a <- tbl(myRedshift, sql("SELECT * FROM aaa.a1.base_posdata"))

проблема решена

person Feng Chen    schedule 11.10.2016