Возвращает ли Redshift JDBC DatabaseMetaData.getDatabaseMajorVersion () актуальное значение? - PullRequest
0 голосов
/ 04 июня 2019

Мой вопрос заключается в том, как получить правильную информацию о версии базы данных красного смещения из соединения JDBC Redshift. Вызов JDBC DatabaseMetaData.getDatabaseMajorVersion () и DatabaseMetaData.getDatabaseMinorVersion просто возвращает 8 и 0, которые, я полагаю, являются просто жестко закодированными значениями. Есть ли вызов API драйвера JDBC для получения разумных значений?

Мое альтернативное решение - использовать функцию VERSION , как описано в https://docs.aws.amazon.com/redshift/latest/dg/r_VERSION.html, и извлечь версию кластера. Это, однако, требует от меня запуска SQL, где я хотел бы использовать вызовы чистого JDBC API. Он также возвращает длинную строку (см. Ниже), и нам нужно проанализировать эту строку, чтобы получить версию кластера (например, g 1.0.7804).

Функция VERSION возвращает строку, подобную следующей
" PostgreSQL 8.0.2 на i686-pc-linux-gnu, скомпилирован GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.7804 "

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете использовать AWS CLI / API для вызова redshift description-cluster-db-revisions

например. используя cli

aws redshift describe-cluster-db-revisions

Возвращает объект json, описывающий каждый кластер, включая объект «CurrentDatabaseRevision», который содержит текущую версию БД. В настоящее время для меня это выглядит как "7562".

См

https://docs.aws.amazon.com/cli/latest/reference/redshift/describe-cluster-db-revisions.html

и

https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusterDbRevisions.html
...