Невозможно создать пространство ключей с помощью кассандры с php - PullRequest
1 голос
/ 10 июля 2020

Я не могу создать пространство ключей на cassandra, работающем под docker контейнером с PHP. Связь вроде бы в порядке, но я ничего не создал. когда я запускаю DESCRIBE keyspaces;, у меня по умолчанию создаются только пространства ключей.

Я использую пакет thobbs/phpcassa для подключения php с кассандрой. Думаю, что проблема в логине и пароле.

В этой связке я не нашел, куда их положил. Когда я подключаюсь к контейнеру cassandra, я могу подключиться с помощью этой команды cqlsh -u cassandra -p cassandra 172.24.0.1 9042

Ниже указан мой код в индексе. php

<?php

require 'vendor/autoload.php';

use phpcassa\ColumnFamily;
use phpcassa\ColumnSlice;
use phpcassa\Connection\ConnectionPool;

$servers = array("172.24.0.1:9042");
$pool = new ConnectionPool("Keyspace2", $servers);


$column_family = new ColumnFamily($pool, 'ColumnFamily1');

где я могу поместить свой логин и пароль?

1 Ответ

2 голосов
/ 10 июля 2020

Пожалуйста, не используйте thobbs/phpcassa - он очень старый, и он использует устаревший протокол Thrift под капотом ... Правильный способ работы с Cassandra сейчас - использовать драйвер PHP от DataStax . Здесь полностью поддерживается аутентификация ( do c), например:

$cluster = Cassandra::cluster()
               ->withCredentials("username", "password")
               ->build();
$session = $cluster->connect();

И после того, как вы получили $session, вы можете использовать функцию execute для выполнения операторов CQL, например, CREATE KEYSPACE и CREATE TABLE , например:

$session->execute('CREATE TABLE ...')

Я рекомендую узнать о CQL (Cassandra Query Language), который давно заменил Thrift go. Хороший ресурс для этого - «Кассандра. Полное руководство» - недавно было выпущено 3-е издание, и бесплатно доступно на сайте DataStax .

...