Skip to content
4 de março de 2015 / rafaelti

Hypertable – Chave aproximada com Scanner

Objetivo

Utilizar na busca do Scanner uma chave aproximada para retornar as células do Hypertable

Plataforma

PHP, Hypertable e linux

Conhecimento

PHP e Hypertable

Introdução

Muitas situação não é conveniente utilizar HQL e a busca com chave aproximada com scanner pode ser um pouco traiçoeira.

Solução

Para utilizar a chave aproximada não se deve usar o RowInterval(ou pelo menos não consegui). Devemos usar regex na chave.

function scan(&$client, $key, $columns) {
    try {
        //$client = $this->client();
        $ns = $client->namespace_open('ns');

        $args = array('row_regexp' => "^$key", 'columns' => $columns);

        $ss = new \Hypertable_ThriftGen\ScanSpec($args);

        $scanner = $client->scanner_open($ns, 'yourtable', $ss);

        do {
            $cells = $client->scanner_get_cells($scanner);
            foreach ($cells as &$cell) {
                var_dump($cell);
            }
        } while (!empty($cells));

        $client->scanner_close($scanner);
        $client->namespace_close($ns);
    } catch (\Hypertable_ThriftGen\ClientException $e) {
        echo "error: $e->message\n";
        exit(1);
    }
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: