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

使用SQL管理外部項(xiàng)目

更新時(shí)間:

構(gòu)建湖倉(cāng)一體時(shí),您需要?jiǎng)?chuàng)建外部項(xiàng)目(External Project)用于關(guān)聯(lián)Hadoop集群,或關(guān)聯(lián)DLF及OSS。本文為您介紹如何使用SQL方式對(duì)不同場(chǎng)景中已創(chuàng)建的外部項(xiàng)目、及其中的表進(jìn)行管理,例如查詢或更新表數(shù)據(jù)等操作。

背景信息

您在通過(guò)DataWorks控制臺(tái)的數(shù)據(jù)湖集成界面創(chuàng)建External Project后,可以使用SQL方式操作External Project,場(chǎng)景如下所示。

基于數(shù)據(jù)湖構(gòu)建DLF和對(duì)象存儲(chǔ)OSS的外部項(xiàng)目操作

在創(chuàng)建External Project后,您可以通過(guò)MaxCompute客戶端進(jìn)入創(chuàng)建的External Project空間,在關(guān)聯(lián)的MaxCompute項(xiàng)目下,對(duì)External Project的表或數(shù)據(jù)進(jìn)行操作。

與常規(guī)MaxCompute SQL不同的是,External Project表需要以external_project_name.table_name格式引用。目前暫不支持在外部項(xiàng)目中創(chuàng)建表。

  • 向表中插入數(shù)據(jù)。

    • 向非分區(qū)表插入數(shù)據(jù)。

      --進(jìn)入關(guān)聯(lián)的MaxCompute項(xiàng)目(非外部項(xiàng)目)。
      use doc_test_prod;
      
      --向非分區(qū)表中插入數(shù)據(jù)。
      insert into table ext_mcdlf_ddl.ddl_test values(1,"ddl_test_1");
    • 向分區(qū)表中插入數(shù)據(jù)。

      --進(jìn)入關(guān)聯(lián)的MaxCompute項(xiàng)目。
      use doc_test_prod;
      
      --向表中插入數(shù)據(jù)。
      insert overwrite table ext_mcdlf_ddl.range_ptstring_ptint partition (pt1 = 'ds1', pt2=2) values (4, 'val4'), (5, 'val5');
  • 查看External Project中的表信息。

    --進(jìn)入關(guān)聯(lián)的MaxCompute項(xiàng)目。
    use doc_test_prod;
    
    --查看External Project下的表。
    show tables in doc_test_prod;
    
    --查看ext_mcdlf_ddl.ddl_test表結(jié)構(gòu)。
    desc extended ext_mcdlf_ddl.ddl_test;
  • 查詢External Project中的表數(shù)據(jù)。

    --進(jìn)入關(guān)聯(lián)的MaxCompute項(xiàng)目。
    use doc_test_prod;
    
    --查詢非分區(qū)表ext_mcdlf_ddl.ddl_test數(shù)據(jù)。
    select * from ext_mcdlf_ddl.ddl_test limit 10;
    
    --查詢分區(qū)表ext_mcdlf_ddl.range_ptstring_ptint的數(shù)據(jù)。
    select * from ext_mcdlf_ddl.range_ptstring_ptint where pt1='ds1';
說(shuō)明
  • 對(duì)于某些特殊場(chǎng)景,需要在執(zhí)行 SQL 時(shí)添加參數(shù),例如:

    -- 如果用戶的orc 版本大于 orc135。 則應(yīng)設(shè)置如下參數(shù):
    set odps.ext.oss.orc.native=true;
    
    -- 打開(kāi)Hive兼容模式后,MaxCompute才支持Hive指定的各種語(yǔ)法
    set odps.sql.hive.compatible=true;
    
    -- 通過(guò)OSS分片上傳功能將數(shù)據(jù)寫(xiě)入OSS
    set odps.sql.unstructured.oss.commit.mode=true;
    -- 支持通過(guò)如下語(yǔ)句全project 默認(rèn)打開(kāi)該功能
    setproject odps.sql.unstructured.oss.commit.mode=true;
  • 常規(guī)MaxCompute SQL語(yǔ)法,請(qǐng)參見(jiàn)表操作插入或覆寫(xiě)數(shù)據(jù)(INSERT INTO | INSERT OVERWRITE)

  • 您可以在odps_config.ini文件中增加set配置內(nèi)容,避免每次手動(dòng)輸入。

  • 更多分片上傳功能信息,請(qǐng)參見(jiàn)分片上傳

基于Hadoop外部數(shù)據(jù)源的外部項(xiàng)目操作

按照如下命令,查詢Hadoop中Hive表數(shù)據(jù)。

--執(zhí)行作業(yè)需要在普通項(xiàng)目下,不能是外部項(xiàng)目。
use <main_project_name>;

--訪問(wèn)阿里云E-MapReduce表必須設(shè)置,訪問(wèn)MaxCompute內(nèi)部表不需要。
set odps.sql.hive.compatible=true;

--指定寫(xiě)出到HDFS的用戶名(非必須)。
set odps.external.hadoop.user=<hadoop_name>;

--讀取Hive表數(shù)據(jù)。
select * from <my_hive_table> limit 10;
說(shuō)明
  • 目前無(wú)法對(duì)關(guān)聯(lián)的External Project執(zhí)行DDL類的SQL語(yǔ)句(add partition和drop partition除外)。DDL SQL語(yǔ)句,詳情請(qǐng)參見(jiàn)SQL概述

  • 您可以在odps_config.ini文件中增加set配置set.odps.sql.hive.compatible=trueset.odps.external.hadoop.user=<hadoop_name>,避免每次手動(dòng)輸入。

創(chuàng)建與外部數(shù)據(jù)源中表結(jié)構(gòu)相同的表

如果需要?jiǎng)?chuàng)建與外部數(shù)據(jù)源中表結(jié)構(gòu)相同的表,可以使用create table...like命令復(fù)制外部數(shù)據(jù)源中表的結(jié)構(gòu),命令示例如下。

說(shuō)明

create table...like命令詳細(xì)說(shuō)明請(qǐng)參見(jiàn)表操作

-- 創(chuàng)建表
create table from_exe_tbl like external_project.testtbl;
-- 此時(shí)from_exe_tbl的表結(jié)構(gòu)與 external_project.testtbl 完全相同。
-- 除生命周期屬性外,列名、列注釋以及表注釋等均相同。但external_project.testtbl中的數(shù)據(jù)不會(huì)被復(fù)制到from_exe_tbl表中。
-- 查詢表
SELECT * from from_exe_tbl;
-- 查看表結(jié)構(gòu)
desc from_exe_tbl;

相關(guān)文檔

如果您想給外部項(xiàng)目或其中的表進(jìn)行授權(quán),可參見(jiàn)對(duì)于外部項(xiàng)目的用戶以及權(quán)限操作