Но когда я пытаюсь напечатать его содержимое, используя JSON.stringify, я получаю: {} (пустой файл).
blockquote>Это не содержимое файла
JSON
. Это Файловый объект . Для чтения содержимого JSON необходимо использовать FileReader.onFileChanged(event) { this.selectedFile = event.target.files[0]; const fileReader = new FileReader(); fileReader.readAsText(this.selectedFile, "UTF-8"); fileReader.onload = () => { console.log(JSON.parse(fileReader.result)); } fileReader.onerror = (error) => { console.log(error); } }
Я думаю, что Вы, как многие из нас, делаете ошибку обработки bigtable и HBase как просто другой RDBMS, когда это - на самом деле ориентированная на столбец модель хранения, предназначенная для того, чтобы эффективно сохранить и получить большие наборы редких данных. Это означает хранить, идеально, many-one отношения в одной строке, например. Ваши запросы должны возвратить очень немного строк, но содержать (потенциально) много точек данных.
, Возможно, если Вы сказали нам больше о том, что Вы пытались сохранить, мы могли помочь Вам разработать свою схему для соответствия bigtable/HBase способу сделать вещи.
Для хорошего краткого изложения того, что HBase делает по-другому, чем "традиционный" RDBMS, проверьте эту потрясающую статью: Импеданс согласования: Когда использовать HBase Bryan Duxbury.
Я посмотрел на Hadoop и Hbase и как сказанный Sean, я скоро понял, что он не дал мне, что я на самом деле хотел, который был кластеризованной совместимой базой данных JDBC.
я думаю, что Вы могли быть более обеспеченным использованием чего-то как C-JDBC или HA-JDBC , которые кажутся больше как то, чем я был, был после. (Лично, я не имею дальше ни с одним из них кроме чтения документации, таким образом, я не могу сказать, кто из них хорошо работает, если таковые имеются.)
Я рекомендовал бы смотреть на проект Apache Hive, который подобен HBase (в том смысле, что это - распределенная база данных), который реализует язык SQL-esque.
Спасибо за ответ Sean, и жаль о моем последнем ответе. Я часто делаю ошибку обработки HBase как RDBMS. Так часто на самом деле, что я должен был переписать код из-за этого! Это - такая твердая вещь разучиться.
Прямо сейчас у нас есть только 4 таблицы. Который, в этом случае, является очень немногими рассматривающими мое образование. Я просто надеялся использовать приблизительно функциональность RDBMS, главным образом придерживаясь ориентированной на столбец модели хранения.
Рад слышать, что вы, ребята, используете HBase! Я не эксперт ни в каком смысле, но вот пара вещей, которые могут помочь.
HBase основан на BigTable / вдохновлен им, который, как оказалось, предоставляется AppEngine в качестве их db api, поэтому просмотр их документации должен очень помочь, если вы работаете над веб-приложением.
Если вы не работаете над веб-приложением, то итерация, которую вы описываете, обычно выполняется через map / уменьшить (не выдавать значения, которые вам не нужны). Пропуск значений с помощью итераторов практически гарантирует, что в вашем приложении будут узкие места с наборами данных размером с HBase. Если вы обнаружите, что все еще думаете на SQL, ознакомьтесь с учебником Cloudera о свиньях и руководством по улью.
Если вы хотите доступ к HBase с помощью языка запросов и драйвера JDBC возможен. Пол Амброуз выпустил библиотеку под названием HBQL на hbql.com, которая поможет вам в этом. Я использовал его в нескольких проектах, и он хорошо работает. Очевидно, что у вас не будет доступа к полному SQL, но это немного упрощает его использование.