Экономия + Кассандра + PHP + Windows?

Подключение к Cassandra с помощью PHP — это действительно боль. Документация в Apache и DataStax написана крайне плохо — для пользователей Windows.

У меня установлен Thrift (я верю!) Через Chocolatey. Но я все еще не в состоянии скомпилировать PHP-код для Кассандры с помощью Thrift.

Если вы посмотрите на это ссылка на сайт ,

  1. Теперь мы можем скомпилировать php-код для Cassandra с помощью команды thrift, которую я использовал: d: \ cassandra \ trift \ thrift.exe —gen php
    d: \ Cassandra \ Интерфейс \ cassandra.thrift

Так что же cassandra.thrift и откуда он взялся ?? Что я должен положить в него ??

Если я точно следую инструкции, я получаю эту ошибку,

Не удалось открыть входной файл: d: \ cassandra \ interface \ cassandra.thrift

введите описание изображения здесь

Так, что происходит?

Как мне сделать эту работу?

Я пытался установить DataStax PHP Драйвер для Apache Cassandra и это документация даже хуже

Почему модули PHP не поставляются с Cassandra, как для MongoDB? Большинство независимых водители Я обнаружил, что устарел, больше не поддерживается или заброшен.

РЕДАКТИРОВАТЬ:

От ПРОЧТИ МЕНЯ,

Установите расширение PHP

Установка с помощью pecl

Драйвер PHP не публикуется в официальном репозитории PECL.
Вы все еще можете установить его, используя pecl, указав
путь к файлу package.xml в качестве аргумента команды установки pecl.

Установите версию 2.0 C / C ++ драйвера

not published to the official PECL repository yes — это да или же еще?

Получение зависимостей сборки

CMake
Git
ActiveState Perl
Python v2.7.x

Я скачал и установил. Тогда что? В Сборка драйвера,

Пакетный сценарий был создан для обнаружения установленных версий Visual …

Какие? Где же Пакетный скрипт вдруг пришел из ??

Затем,

Сначала вам нужно открыть «Командную строку» (или Windows SDK Command
Подскажите) выполнить пакетный скрипт.

Использование: VC_BUILD.BAT [ОПЦИЯ …]

--DEBUG                           Enable debug build
--RELEASE                         Enable release build (default)
--DISABLE-CLEAN                   Disable clean build

….

Для чего нужны эти «-»?

Чтобы построить 32-битную разделяемую библиотеку:

VC_BUILD.BAT —X86 Чтобы создать 64-битную разделяемую библиотеку:

VC_BUILD.BAT —X64

Где же .ЛЕТУЧАЯ МЫШЬ родом из? Что я должен положить в него? Откуда мне его запустить?

В конце концов, что это за Зависимости сборки за? Как я их использую ??

Просто надейтесь, что кто-то может написать правильное руководство, а руководство выше — это страшно! (если вы сравните руководства в MongoDB, это намного лучше и профессиональнее)

РЕДАКТИРОВАТЬ 2:

Первая ошибка, когда я запускаю .bat со своего рабочего стола,

введите описание изображения здесь

Я уже установил git, но у меня все еще есть эта ошибка,

введите описание изображения здесь

После исправления проблемы с git выше, у меня есть новая — она ​​просто зависла, ничего не происходит,

введите описание изображения здесь

1

Решение

Файл IDL cassandra.thrift обычно является частью пакета cassandra, но вы можете найти его по ссылке выше. Ссылка указывает на транк, вы можете захотеть другую версию.

После того, как вы скачали правильную версию этого файла или лучше найти его в вашем загруженный Пакет Кассандра в interface папку, сгенерируйте код, как указано в имеющейся документации. Остальное должно быть легко.

Почему модули PHP не поставляются с Cassandra, как для MongoDB? Большинство независимых драйверов, которые я нашел, устарели, больше не поддерживаются или отказались.

Я не совсем уверен в этом, но я предполагаю, что тот факт, что CQL сейчас активно продвигается, вместо использования сырого Thrift API — последний — сложная задача, в то время как CQL проще в использовании — это один из ключевые факторы, почему это так. Это более или менее устраняет необходимость в другой обертке.


PS: Просто чтобы быть уверенным:

thrift.exe --gen php d:\cassandra\interface\cassandra.thrift

could not open input file cassandra.thrift

Конечно, вы указываете на правильные диски, папки и файлы, не так ли?

3

Другие решения

Забудьте о Thrift и «бета», я нашел лучше решение. Это очень просто и чрезвычайно легко!

Примеры кодов,

require_once 'lib/Cassandra/Cassandra.php';

$cassandra = new Cassandra();

$s_server_host     = '127.0.0.1';    // Localhost
$i_server_port     = 9042;
$s_server_username = 'admin';  // We don't use username
$s_server_password = 'password';  // We don't use password
$s_server_keyspace = 'demo';  // We don't have created it yet

$cassandra->connect($s_server_host, $s_server_username, $s_server_password, $s_server_keyspace, $i_server_port);

// Tests if the connection was successful:
if ($cassandra) {

// Select:
// Queries a table.
$cql = "SELECT * FROM users;";

// Launch the query.
$results = $cassandra->query($cql);

// Update:
// Prepares a statement.
$stmt = $cassandra->prepare('UPDATE users SET first_name = ?, last_name = ? where id = ?');

// Executes a prepared statement.
$values = array('first_name' => 'Fred', 'last_name' => 'Smith', 'id' => '1');
$result = $cassandra->execute($stmt, $values);

// Insert:
// Prepares a statement.
$stmt = $cassandra->prepare('INSERT INTO users (id, first_name, last_name)
VALUES (:id, :first_name, :last_name)');

// Executes a prepared statement.
$values = array('first_name' => 'John', 'last_name' => 'Robinson', 'id' => '4');
$result = $cassandra->execute($stmt, $values);

// Delete:
// Prepares a statement.
$stmt = $cassandra->prepare('DELETE FROM users WHERE id = :id');

// Executes a prepared statement.
$values = array('id' => '4');
$result = $cassandra->execute($stmt, $values);

// Closes the connection.
$cassandra->close();
}
1

Обновить:

PHP-драйвер datastax теперь GA, и двоичные файлы доступны для скачивания (не нужно создавать его самостоятельно):

https://github.com/datastax/php-driver


Что касается PHP-драйвера DataStax, инструкции улучшаются по мере того, как вы пишете.

Потому что этот драйвер находится в Бета, у нас пока нет предварительно скомпилированных двоичных файлов, которые вы можете просто скачать. Они будут доступны после того, как водитель GA. На данный момент вам придется строить их самостоятельно.

Процесс создания двоичных файлов очень прост. 1) Установите зависимости 2) Запустите vc_build.bat.

Вы можете найти vc_build.bat Вот (просто щелкните правой кнопкой мыши, чтобы сохранить как из вашего браузера):

https://raw.githubusercontent.com/datastax/php-driver/master/ext/vc_build.bat

1