Я загрузил некоторые данные 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
, из которого я запрашиваю, но я не уверен, где мне следует установить это свойство. У кого-нибудь есть опыт решения этой проблемы?