Partilhar via


Compatibilidade com o Apache Hive

Aplica-se a:assinalado sim Databricks Runtime

O Apache Spark SQL no Azure Databricks foi projetado para ser compatível com o Apache Hive, incluindo conectividade de metastore, SerDes e UDFs.

SerDes e UDFs

Hive SerDes e UDFs são baseados no Hive 1.2.1.

Conectividade do Metastore

Consulte Metastore externo do Apache Hive (legado) para obter informações sobre como conectar o Azure Databricks a um metastore do Hive hospedado externamente.

Recursos do Hive suportados

O Spark SQL suporta a grande maioria dos recursos do Hive, como:

  • Declarações de consultas do Hive, incluindo:
    • SELECT
    • GROUP BY
    • ORDER BY
    • CLUSTER BY
    • SORT BY
  • Todas as expressões do Hive, incluindo:
    • Expressões relacionais (=, , ==, , <>, <, >>=, <=, etc)
    • Expressões aritméticas (+, -, , *, /%, etc)
    • Expressões lógicas (E, &&, OU, ||, etc)
    • Construtores de tipo complexo
    • Expressões matemáticas (signo, ln, cos, etc)
    • Expressões de cadeia de caracteres (instr, length, printf, etc)
  • Funções definidas pelo usuário (UDF)
  • Funções de agregação definidas pelo usuário (UDAF)
  • Formatos de serialização definidos pelo usuário (SerDes)
  • Funções do Windows
  • Adere
    • JOIN
    • {ESQUERDA|DIREITA|COMPLETO} JOIN EXTERIOR
    • Semi-Esquerda JOIN
    • CRUZAMENTO JOIN
  • Sindicatos
  • Subconsultas
    • SELECT col FROM ( SELECT a + b AS col de t1) t2
  • Amostragem
  • Explicar
  • Tabelas particionadas, incluindo inserção dinâmica de partições
  • Vista
  • Grande maioria das declarações DDL, incluindo:
    • CREATE TABLE
    • CREATE TABLE COMO SELECT
    • ALTER TABLE
  • A maioria dos tipos de dados do Hive, incluindo:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEANO
    • FLUTUAR
    • DUPLO
    • cadeia de caracteres
    • BINÁRIO
    • CARIMBO DE DATA/HORA
    • DATA
    • MATRIZ<>
    • MAPA<>
    • ESTRUTURA<>

Funcionalidade do Hive não suportada

As seções a seguir contêm uma lista de recursos do Hive que o Spark SQL não suporta. A maioria desses recursos raramente é usada em implantações do Hive.

Principais recursos do Hive

  • Gravando na tabela com bucket criada pelo Hive
  • Atualizações granulares ACID

Características da Colmeia Esotérica

  • Tipo de União
  • Adesão única
  • Coleta de estatísticas de coluna: O Spark SQL não faz varreduras adicionais para coletar estatísticas de coluna neste momento e suporta apenas o preenchimento do campo sizeInBytes no metastore do Hive.

Formatos de entrada e saída do Hive

  • Formato de ficheiro para CLI: Para resultados que retornam ao CLI, o Spark SQL suporta apenas TextOutputFormat.
  • Arquivo do Hadoop

Otimizações do Hive

Algumas otimizações do Hive não estão incluídas no Spark. Alguns deles (como índices) são menos importantes devido ao modelo computacional na memória do Spark SQL.

  • Índices de bitmap de nível de bloco e colunas virtuais (usados para criar índices).
  • Determine automaticamente o número de redutores para junções e operações de grupo: no Spark SQL, é necessário controlar o grau de paralelismo após a redistribuição usando SET spark.sql.shuffle.partitions=[num_tasks];.
  • Sinalizador de distorção de dados: o Spark SQL não segue o sinalizador de distorção de dados no Hive.
  • STREAMTABLE dica na associação: o Spark SQL não segue a STREAMTABLE dica.
  • Mesclar vários arquivos pequenos para resultados de consulta: se a saída do resultado contiver vários arquivos pequenos, o Hive pode, opcionalmente, mesclar os arquivos pequenos em menos arquivos grandes para evitar o transbordamento dos metadados do HDFS. O Spark SQL não suporta isso.