Нет результатов в запросе после загрузки данных в AWS RDS с использованием конвейера данных? - PullRequest
0 голосов
/ 16 апреля 2019

Я загрузил некоторые данные CSV из S3 в RDS, используя Data Pipeline. Я использую Postgres 10.6. Я знаю, что конвейер данных определенно выполняет некоторые операции записи, поскольку я вижу соответствующее увеличение задержки записи, операций ввода-вывода в секунду, глубины очереди и т. Д. Проблема в том, что я не знаю, во что он записывает, потому что выполнение select count(*) from users возвращает 0. В конвейере данных нет ошибок или предупреждений.

Я выполняю запрос, используя psycopg2:

conn = psycopg2.connect(
    host=host,
    port=5432,
    user=username,
    password=password,
    connect_timeout=10,
    database='postgres'
)
cursor = conn.cursor()
cursor.execute('select count(*) from users')

Это мой запрос на вставку:

INSERT INTO users (id, gender, country_code)
VALUES (?, ?, ?) 
ON CONFLICT (id)
DO UPDATE SET
gender = EXCLUDED.gender, country_code = EXCLUDED.country_code;

Это конфигурация для моей базы данных / узла данных RDS:

{
  "*password": "#{*myRDSPassword}",
  "name": "postgres",
  "jdbcProperties": "allowMultiQueries=true",
  "id": "rds_mysql",
  "region": "us-west-1",
  "type": "RdsDatabase",
  "rdsInstanceId": "#{myRDSInstanceId}",
  "username": "#{myRDSUsername}"
},
{
  "database": {
    "ref": "rds_mysql"
  },
  "name": "DestinationRDSTable",
  "insertQuery": "#{myRDSTableInsertSql}",
  "id": "DestinationRDSTable",
  "type": "SqlDataNode",
  "table": "#{myRDSTableName}",
  "selectQuery": "select * from #{table}"
},
{
  "myRDSTableName": "users",
}

Единственное объяснение, которое я могу придумать, это то, что я пишу в другую базу данных, отличную от значения по умолчанию postgres, из которого я запрашиваю, но я не уверен, где мне следует установить это свойство. У кого-нибудь есть опыт решения этой проблемы?

1 Ответ

0 голосов
/ 16 апреля 2019

Для справки: исправили эту проблему, добавив необязательный параметр databaseName="postgres" к объекту RdsDatabase.

...