J'ai conçu la table HBase où mon rowkey
est dirigé vers les requêtes dont j'ai besoin pour l'exécuter. En suivant les meilleures pratiques, j'ai inclus une portion hachurée comme préfixe de mes rowkeys, en essayant d'étaler les lignes le plus uniformément possible dans mes régions de table.Stratégies pour interroger efficacement dans HBase
Je suis préoccupé par le scénario suivant:
Je suis arrivé des milliards de lignes dans ma fraction de table HBase entre 3 régions. J'utilise cette table pour fournir des données pour une API REST, et pour cela, elle doit fournir les lignes le plus rapidement possible.
Malheureusement, je suis frappé la célèbre erreur de délai d'attente Failed to get result within timeout, timeout=60000ms
même si j'invoque soit count "table_name"
dans la coquille de HBase ou pour toute autre analyse, y compris startrow
et stoprow
parameters.It semble balayage par des plages en utilisant le rowkey
balaie toute la table HBase .
Compte tenu de ce scénario, je voudrais poser 2 questions:
1) Est-il une stratégie pour récupérer vraiment plage de lignes aussi vite que possible sans toucher l'erreur de délai d'attente? J'apprécie vraiment les pointeurs ici.
2) Comme je suis nouveau dans HBase, pensez-vous que HBase est la meilleure ou au moins adéquate pour fournir des données de récupération rapide à une API REST, étant donné que la recherche est en fait numérisée?