Улей - это хорошо подходит для создания хранилища данных?

Хорошо, так как я попрошу привести пример и мою часть:

Вот список и метрики производительности для различных форм сериализации PoJos

Вам придется судить о компромиссах с производительностью и удобством. Но, поскольку я сказал «JSON» как средство сериализации, вот здесь тривиальный пример, который не зависит от компилятора. В принципе, если вы не изменили структуру своего pojo на принимающей стороне, это совершенно не имеет значения, когда / how / где вы ее скомпилируете (на самом деле, это даже не должно быть между двумя JVM). Как вы можете видеть из ссылки, JSON на самом деле является одним из самых медленных, а XML - просто свинья. Но оба они имеют решающее преимущество в поддержке повсеместно. XML даже позволяет применять таблицы стилей.

    
        com.google.code.gson
        gson
        2.3.1
        test
    

Код

  @Test
    public void testJSON() throws Exception {
        Foo expected = new Foo(1,"Christian",1000000.00d);
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String testJson = gson.toJson(expected);

        System.out.println(testJson);

        Foo result = gson.fromJson(testJson, Foo.class);
        assertEquals(expected,result);

    }

    public static class Foo {

        private String name;
        private Integer age;
        private Double paycheck;

        public Foo(Integer age, String name, Double paycheck) {
            this.age = age;
            this.name = name;
            this.paycheck = paycheck;
        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;

            Foo foo = (Foo) o;

            if (age != null ? !age.equals(foo.age) : foo.age != null) return false;
            if (name != null ? !name.equals(foo.name) : foo.name != null) return false;
            if (paycheck != null ? !paycheck.equals(foo.paycheck) : foo.paycheck != null) return false;

            return true;
        }

        @Override
        public int hashCode() {
            int result = name != null ? name.hashCode() : 0;
            result = 31 * result + (age != null ? age.hashCode() : 0);
            result = 31 * result + (paycheck != null ? paycheck.hashCode() : 0);
            return result;
        }
    }

Выход

{
  "name": "Christian",
  "age": 1,
  "paycheck": 1000000.0
}

0
задан jawsnnn 17 January 2019 в 17:15
поделиться

2 ответа

Я бы сказал, что Hive MetaStore полезен больше, чем сам HiveServer2 в качестве интерфейса запроса.

MetaStore - это то, что Presto и Spark используют для получения данных намного быстрее, чем MapReduce, но, возможно, не так быстро, как хорошо оптимизированный запрос Tez, и в Hive v2.x + вносятся улучшения, например, с LLAP ,

В конце концов, Hive действительно полезен только в том случае, если конвейеры приема фактически хранят данные в столбчатых форматах ORC или Parquet. Отсюда и разумный механизм запросов может довольно быстро сканировать эти данные, и Hive просто считается де-факто реализацией этого шаблона доступа, тогда как Impala или Presto часто более часто используются для доступа ad hoc.

При этом Hive (и другие SQL в Hadoop) не используются для «построения», он используется для «анализа»

И я не знаю, что вы подразумеваете под " стандарт "- Hive поддерживает любое соединение ODBC / JDBC, поэтому вы не обращаетесь к CLI для получения полного доступа, а HUE или Zeppelin делают действительно хорошие блокноты для анализа SQL через Hive.

0
ответ дан cricket_007 17 January 2019 в 17:15
поделиться

Чтобы ответить на ваш вопрос,

  1. Всегда ли есть компромиссы в производительности запросов или их можно оптимизировать с помощью изменений конфигурации, горизонтального масштабирования оборудования?
< / blockquote>

Если вы используете только инструмент куста от Hadoop для запросов Adhoc, тогда это неправильный выбор для запросов adhoc и анализа данных. Мы рассмотрим лучший вариант в соответствии с вашим вариантом использования и сделаем выбор технологий из Hive LLAP, HBase, Spark, SparkSQL, Spark Streaming, Apache storm, Imapala, Apache Drill и Prestodb и т. Д.

  1. Может ли он когда-нибудь быть таким же быстрым, как что-то вроде Netezza - который использует некоммерческое аппаратное обеспечение, но работает на аналогичной архитектуре?

Это лучший инструмент В настоящее время большинство организаций используют, но вы должны быть конкретны в выборе технических инструментов из технологического стека Hadoop в соответствии с вашим вариантом использования, и после изучения его сделайте правильный выбор для технологии.

  1. Где Hadoop великолепен и абсолютно превосходит все остальное в сравнении?

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

Надеюсь, это поможет.

0
ответ дан marc_s 17 January 2019 в 17:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: