Как получить имя кластера Cassandra, используя драйвер Python?

1

Когда я подключаюсь к Cassandra с помощью cqlsh, он сообщает мне имя кластера Cassandra, к cqlsh я подключен.

$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>

(В этом примере имя кластера - Test Cluster, и он отображается синим цветом на моем экране.)

Как получить имя кластера из моего кода Python с помощью драйвера Python Cassandra? Я ожидал, что смогу получить эту информацию из объекта Session, но я не вижу ничего в документации.

(Мой вариант использования - часть подхода с поясом и фигурными скобками, чтобы предотвратить запуск тестов против производства Cassandras. Идея заключается в том, что если имя сервера указывает, что тесты каким-то образом связаны с производством Cassandra, они могут прервать ASAP.)

Теги:
cassandra

2 ответа

4
Лучший ответ

cassandra.metadata - Схема и топология кольца

  • 0
    Чтобы уточнить это: это доступно через Cluster , например cluster.metadata.cluster_name , а не через Session , но оно доступно только после того, как вы создали сеанс.
2

Вы также можете найти имя кластера (и другую информацию), system.local таблицу system.local:

from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
import sys

hostname=sys.argv[1]
username=sys.argv[2]
password=sys.argv[3]

nodes = []
nodes.append(hostname)
auth_provider = PlainTextAuthProvider(username=username, password=password)
ssl_opts = {'ca_certs':'/home/aaron/.cassandra/mycert.pem'}
cluster = Cluster(nodes,auth_provider=auth_provider,ssl_options=ssl_opts)
session = cluster.connect()

strCQL = "SELECT cluster_name FROM system.local"
pStatement = session.prepare(strCQL)
rows = session.execute(pStatement)

for row in rows:
    print row[0]

session.shutdown()

Сохраните это как getCluster.py и запустите его, чтобы увидеть:

$ python getCluster.py 192.168.0.101 aaron flynnLives
AaronsHomeCluster

Ещё вопросы

Сообщество Overcoder
Наверх
Меню