zoukankan      html  css  js  c++  java
  • 【翻译】Flink Table Api & SQL — Hive —— 读写 Hive 表

    本文翻译自官网:Reading & Writing Hive Tables  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/read_write_hive.html

    Flink Table Api & SQL 翻译目录

    使用HiveCatalog和Flink的Hive连接器,Flink可以读取和写入Hive数据,以替代Hive的批处理引擎。确保遵循说明在您的应用程序中包括正确的依赖项

    从 Hive 读数据 

    假设Hive在其default数据库中包含一个表,该表名为people,其中包含几行。

     

    hive> show databases;
    OK
    default
    Time taken: 0.841 seconds, Fetched: 1 row(s)
    
    hive> show tables;
    OK
    Time taken: 0.087 seconds
    
    hive> CREATE TABLE mytable(name string, value double);
    OK
    Time taken: 0.127 seconds
    
    hive> SELECT * FROM mytable;
    OK
    Tom   4.72
    John  8.0
    Tom   24.2
    Bob   3.14
    Bob   4.72
    Tom   34.9
    Mary  4.79
    Tiff  2.72
    Bill  4.33
    Mary  77.7
    Time taken: 0.097 seconds, Fetched: 10 row(s)

    准备好数据后,您可以连接到现有的Hive 安装程序并开始查询。

    Flink SQL> show catalogs;
    myhive
    default_catalog
    
    # ------ Set the current catalog to be 'myhive' catalog if you haven't set it in the yaml file ------
    
    Flink SQL> use catalog myhive;
    
    # ------ See all registered database in catalog 'mytable' ------
    
    Flink SQL> show databases;
    default
    
    # ------ See the previously registered table 'mytable' ------
    
    Flink SQL> show tables;
    mytable
    
    # ------ The table schema that Flink sees is the same that we created in Hive, two columns - name as string and value as double ------ 
    Flink SQL> describe mytable;
    root
     |-- name: name
     |-- type: STRING
     |-- name: value
     |-- type: DOUBLE
    
    
    Flink SQL> SELECT * FROM mytable;
    
       name      value
    __________ __________
    
        Tom      4.72
        John     8.0
        Tom      24.2
        Bob      3.14
        Bob      4.72
        Tom      34.9
        Mary     4.79
        Tiff     2.72
        Bill     4.33
        Mary     77.7

    写数据到hive

    同样,可以使用INSERT INTO子句将数据写入 hive。 

    Flink SQL> INSERT INTO mytable (name, value) VALUES ('Tom', 4.72);

    局限性

    以下是Hive连接器的主要限制列表。我们正在积极努力缩小这些差距。

    1. 不支持 INSERT OVERWRITE。
    2. 不支持插入分区表。
    3. 不支持ACID表。
    4. 不支持存储桶的表。
    5. 不支持某些数据类型。有关详细信息,请参见限制
    6. 仅测试了有限数量的表存储格式,即文本,SequenceFile,ORC和Parquet。
    7. 不支持视图。

    欢迎关注Flink菜鸟公众号,会不定期更新Flink(开发技术)相关的推文

  • 相关阅读:
    NSURLSession的文件下载
    JSON解析(序列化和反序列化)
    NSURLSession的知识小记
    RunLoop的知识小记
    NSCach 的知识小记
    多图片下载综合案例-磁盘缓存处理
    模仿UIApplication创建单例
    LayoutSubviews的调用
    setValueForKeysWithDictionary的底层实现
    剑指offer 20:顺时针打印矩阵
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/11970080.html
Copyright © 2011-2022 走看看