日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Lindorm外部表(云原生多模數據庫)

在MaxCompute與阿里云Lindorm服務間的網絡處于連通狀態時,MaxCompute支持您通過創建外部表來關聯Lindorm表。使用Lindorm外部表,可以將Lindorm表中的數據同步到MaxCompute進行后續ETL處理,也可以關聯Lindorm表進行聯邦計算,或將MaxCompute數據輸出到Lindorm表中。本文為您介紹如何通過MaxCompute創建Lindorm外部表并映射Lindorm數據源。

背景信息

Lindorm是面向物聯網、互聯網、車聯網等設計和優化的云原生多模超融合數據庫,支持寬表、時序、文本、對象、流、空間等多種數據的統一訪問和融合處理,并兼容SQL、HBase/Cassandra/S3、TSDB、HDFS、Solr、Kafka等多種標準接口,是阿里巴巴核心業務提供支撐的數據庫之一。更多Lindorm信息請參見Lindorm產品概述

前提條件

創建Lindorm外部表前,請確認已經滿足如下條件:

使用限制

  • 由于只有華北2(北京)、華東2(上海)、華北3(張家口)、華東1(杭州)、華南1(深圳)、中國香港、華東 2 金融云(可用區F)、日本(東京)、新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達)、德國(法蘭克福)、美國(硅谷)、美國(弗吉尼亞)地域開通了專線直連訪問VPC方案,僅以上地域可以創建Lindorm外部表,其他地域暫不支持。

  • 網絡打通時,MaxCompute側僅打通到所填VPC ID的網絡連接,如需跨Region訪問或者訪問該Region的其他VPC,請根據云上VPC現有打通方案,打通專線直連方案所填寫的VPC和其他VPC之間的網絡。

  • Lindorm外部表不支持cluster屬性。

創建Lindorm外部表語法

在創建Lindorm外部表時,您需要在建表DDL語句中指定HBaseStorageHandler,并配置Lindorm實例相關信息。建表時,表名和字段名大小寫不敏感。在查詢表或字段時,無需區分大小寫,且不支持強制轉換大小寫。建表語句定義如下。

--打開Hive兼容模式。
set odps.sql.hive.compatible = true;
--配置odps.sql.hbase.version參數,切換HBase版本為lindorm。
set odps.sql.hbase.version=lindorm;
--創建Lindorm外部表。
create external table if not exists <mc_lindorm_external>
(
  <col1_name> <data_type>,
  <col2_name> <data_type>,
  ......
)
--處理Lindorm數據源的Handler。
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties (
                      'hbase.columns.mapping'='<:key,col-family:col-name1,col-family:col-name2,...>')
tblproperties (
--hbase.table.name和mcfed.hbase.zookeeper.quorum必須配置。
'hbase.table.name'='<namespace:lindorm_table_name>',
'hbase.zookeeper.quorum'='<VPC ip1|host1:port,VPC ip2|host2:port...>',
--配置hbase.client.username和hbase.client.password參數。
'hbase.client.username'='****',
'hbase.client.password'='****',
--hbase.zookeeper.property.clientPort、mcfed.zookeeper.session.timeout和hbase.client.retries.number為可選參數。
--hbase.zookeeper.property.clientPort的默認值為30020。
['hbase.zookeeper.property.clientPort'='{30020}',]
['mcfed.zookeeper.session.timeout'='<value>',]
['hbase.client.retries.number'='<value>',]
'networklink'='<networklink_name>'
);
  • mc_lindorm_external:必填。待創建Lindorm外部表的名稱。

  • col_name:必填。Lindorm外部表的列名稱。

  • data_type:必填。列的數據類型。

  • with serdeproperties

    • 'hbase.columns.mapping'='<:key,col-family:col-name1,col-family:col-name2,...>':必填。Lindorm外部表與Lindorm實例中表的列映射關系,詳情請參見HBaseIntegration-ColumnMapping

      • RowKey(:key1[,:key2,:keyn])必須放在最前面。

      • 列格式為col-family:col-name1,col-family:col-name2。一個作業中col-family只能有一個。

  • tblproperties

    • 'hbase.table.name'='<namespace:lindorm_table_name>':必填。MaxCompute所關聯的Lindorm實例中的Namespace和表的名稱,如果Namespace不填,會自動匹配到default的Namespace上。必須提前通過Lindorm控制臺建好。

    • 'hbase.zookeeper.quorum'='<VPC ip1|host1:port,VPC ip2|host2:port...>':必填。Lindorm的Zookeeper的IP或域名。即Lindorm實例的Java API訪問地址。

    • hbase.client.username:必填。您可以登錄Lindorm控制臺,在實例列表頁面單擊目標實例名稱后,在左側導航欄單擊數據庫連接,即可在寬表引擎頁簽的默認用戶名處獲取。

    • hbase.client.password:必填。您可以登錄Lindorm控制臺,在實例列表頁面單擊目標實例名稱后,在左側導航欄單擊數據庫連接,即可在寬表引擎頁簽的默認初始密碼處獲取。

    • 'hbase.zookeeper.property.clientPort'='{2181|30020}':可選。Lindorm的Zookeeper端口。Lindorm的默認Zookeeper端口為30020。

    • 'mcfed.zookeeper.session.timeout'='<value>':可選。Zookeeper的超時時間。單位為毫秒,建議設置為30000。

    • 'hbase.client.retries.number'='<value>':可選。Lindorm控制臺連接重試次數。

    • 'networklink'='<networklink_name>':必選。Lindorm實例所在VPC的MaxCompute網絡鏈接。

    說明

    mcfed.zookeeperhbase開頭的配置是Zookeeper的相關配置。

使用示例

  1. 使用Lindorm Shell創建Lindorm表并插入數據。

    1. 創建mf_lindorm_test_t表。

      create 'mf_lindorm_test_t','f';
    2. 向表mf_lindorm_test_t插入數據。

      put 'mf_lindorm_test_t', '1122', 'f:col1', 'hello';
      put 'mf_lindorm_test_t', '1122', 'f:col2', 'hbase';
    3. 查詢表mf_lindorm_test_t數據。

      scan 'mf_lindorm_test_t';

      查詢結果如下圖所示:查詢數據

  2. 創建MaxCompute外部表并映射Lindorm數據源。

    1. 配置環境信息并創建MaxCompute的Lindorm外部表mf_lindorm_test_t_ext

      set odps.sql.hive.compatible = true;
      set odps.sql.hbase.version=lindorm;
      CREATE EXTERNAL TABLE mf_lindorm_test_t_ext
      (
      key  int,
      col1 string,
      col2 string
      )
      STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
      WITH SERDEPROPERTIES (
      'hbase.columns.mapping'=':key,f:col1,f:col2')
      TBLPROPERTIES (
      'hbase.table.name'='mf_lindorm_test_t',
      'hbase.zookeeper.quorum'='ld-2z****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020',
      "hbase.client.username"="root",
      "hbase.client.password"="root",
      'networklink'='networklink4hbase');
    2. 查詢外部表mf_lindorm_test_t_ext數據。

      set odps.sql.hive.compatible = true;
      set odps.sql.hbase.version=lindorm;
      select * from mf_lindorm_test_t_ext;

      查詢結果如下:

      +------------+------------+----------+
      | key        | col1       | col2     |
      +------------+------------+----------+
      | 1122       | hello      | hbase    |  
      +------------+------------+----------+
    3. 向外部表mf_lindorm_test_t_ext插入數據。

      執行INSERT OVERWRITE語句向已創建的外部表寫入數據。

      set odps.sql.hive.compatible = true;
      set odps.sql.hbase.version=lindorm;
      INSERT OVERWRITE TABLE mf_lindorm_test_t_ext SELECT '1123', 'lindorm', 'mftestinsert';
    4. 再次查詢外部表mf_lindorm_test_t_ext數據。

      set odps.sql.hive.compatible = true;
      set odps.sql.hbase.version=lindorm;
      select * from mf_lindorm_test_t_ext;

      查詢結果如下:

      +------------+------------+-------------+
      | key        | col1       | col2        |
      +------------+------------+-------------+
      | 1122       | hello      | hbase       | 
      | 1123       | lindorm    | mftestinsert|   
      +------------+------------+-------------+
    5. 使用scan語句查詢Lindorm表mf_lindorm_test_t數據。

      scan 'mf_lindorm_test_t';

      查詢結果如下:查詢結果