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

通過PrestoDB使用Tablestore

PrestoDB是基于MPP架構的開源大數據分布式SQL查詢引擎,支持對接MySQL、Elasticsearch、Tablestore等多種數據源。使用PrestoDB對接表格存儲Tablestore后,基于PrestoDB on Tablestore您可以使用SQL查詢與分析Tablestore中的數據、寫入數據到Tablestore以及導入數據到Tablestore。

背景信息

PrestoDB是基于MPP架構的開源大數據分布式SQL查詢引擎,支持對接MySQL、Elasticsearch、Tablestore等多種數據源。PrestoDB可以作為查詢工具、數據ETL工具、壓力器和統一查詢引擎來滿足不同場景的數據處理需求。

  • PrestoDB作為日常開發和調查問題時的查詢工具,支持通過SQL查詢或分析表中數據。

  • PrestoDB作為數據ETL工具,支持實現跨表或跨實例的數據復制以及異構數據源的數據拷貝。

  • PrestoDB作為壓力器,支持批量掃描或者批量寫入數據。

  • PrestoDB作為數據中臺內的統一查詢引擎,支持對接多種異構數據源。

通過PrestoDB使用Tablestore前,您需要使用PrestoDB對接Tablestore。對接完成后,基于PrestoDB on Tablestore您可以使用SQL查詢與分析Tablestore中的數據、寫入數據到Tablestore以及導入數據到Tablestore。

前提條件

  • 已準備帶有Linux系統或者macOS系統的服務器并完成如下軟件的安裝,本文以Linux系統為例介紹。

    說明

    如果當前沒有帶有Linux系統的服務器,推薦您使用云服務器ECS部署Linux系統后再進行操作。更多信息,請參見通過控制臺使用ECS實例(快捷版)

    • 已完成Java 8(64-bit)和Python3開發環境的安裝。

    • 已完成PrestoDB安裝。

    • 請根據所用PrestoDB版本下載相應的prestodb-tablestore-connector文件并將文件上傳到PrestoDB安裝目錄下的plugin目錄中,然后解壓文件。

      prestodb-tablestore-connector插件版本與PrestoDB版本的配套關系請參見下表。

      插件版本

      PrestoDB版本

      說明

      prestodb-tablestore-connector-202401

      0.280

      首個版本發布。本插件適用于PrestoDB 0.280及之后版本。

  • 已獲取PrestoDB要對接的Tablestore相關信息,例如訪問賬號、實例信息、表信息等。

  • 已為具有Tablestore操作權限的RAM用戶創建AccessKey。具體操作,請參見獲取AccessKey

    說明

    如果未為RAM用戶授予操作Tablestore的權限,請完成授權后再進行操作。具體操作,請參見通過RAM PolicyRAM用戶授權

注意事項

  • 只適用于寬表模型

  • 當前PrestoDB的寫入模式默認為UpdateRow,暫時不提供PutRow的寫入模式。如果需要通過PrestoDB寫入數據到Tablestore,請務必確保Tablestore數據表的是否允許更新配置為,否則數據無法寫入。

    重要
    • 由于使用了多元索引數據生命周期(即取值不為-1)時,您必須配置Tablestore數據表的是否允許更新配置為,因此如果某個表使用了多元索引數據生命周期,則無法通過PrestoDB寫入數據到該表。

    • 如果實際場景中有使用PutRow的寫入模式需求,請通過釘釘搜索36165029092(表格存儲技術交流群-3)加入聯系我們。

    您可以通過控制臺在數據表的基本詳情頁簽查看是否允許更新的配置或者通過SDK調用DescribeTable接口查詢。

    image.png

字段類型映射

表格存儲與PrestoDB都有其自身的類型,兩者之間的字段類型對應關系請參見下表。

Tablestore的字段類型

PrestoDB的字段類型

string

varchar

integer

bigint

double

double

boolean

boolean

binary

varbinary

使用流程

通過PrestoDB使用Tablestore的主要步驟包括使用PrestoDB對接Tablestore、運行PrestoDBSQL CLI、創建Schema和映射表以及使用SQL操作數據。

步驟一:使用PrestoDB對接Tablestore

安裝PrestoDB后,您需要進行PrestoDBCatalog配置和Schema配置來完成PrestoDBTablestore的對接,其中Catalog配置文件的存放路徑為etc/catalog/tablestore.properties

配置說明

Presto中的Catalog配置文件中包括了連接器、Schema配置模式等配置。其中連接器必須配置為tablestore,Schema配置模式支持本地靜態文件配置和Meta表動態配置兩種配置方式。

Schema配置模式的具體說明請參見下表。

Schema配置模式

說明

配置流程

本地靜態文件配置

通過靜態文件預先定義Tablestore資源相關信息,例如訪問賬號、實例信息、映射表的元數據。

重要

配置表的元數據時,必須包含所有的主鍵列且主鍵列順序必須與Tablestore表的主鍵順序一致。

使用PrestoDB訪問Tablestore時只能訪問靜態文件中已配置實例下的表。

運行PrestoDB前,完成如下步驟:

  1. 配置Schema模式為file并配置靜態文件的完整路徑。

  2. 在靜態文件中定義訪問賬號、實例信息和表信息。

(推薦)Meta表動態配置

只需要配置用于存儲SchemaMetastore信息,無需預先定義Tablestore資源相關信息。

您可以在使用PrestoDB訪問Tablestore時動態創建Schema和創建表來定義Tablestore資源相關信息。其中創建Schema時需要配置賬號和實例信息,創建表時需要配置映射表的信息。

  1. 運行PrestoDB前,配置Schema模式為meta-table并配置用戶存儲SchemaMetastore信息。

  2. 運行PrestoDB后,通過create schema create table語句來動態創建所需Schema和映射表。

由上表可知,本地靜態文件配置方式必須預先定義要使用的表信息,如果表信息之前未配置,則需要手動添加后才能進行訪問。Meta表動態配置方式支持在使用PrestoDB訪問Tablestore時根據實際業務場景動態創建所需表信息,配置更靈活。推薦使用Meta表動態配置方式進行Schema配置。

操作步驟

Catalog配置文件中指定Schema的配置模式并完成相應參數配置。此處以Meta表動態配置方式為例介紹對接配置操作。

  1. 進入PrestoDB安裝目錄,然后在PrestoDB安裝目錄下的etc/catalog/路徑中創建tablestore.properties文件。

    重要

    請確保已具有文件的可執行權限后再進行編輯操作。

    Catalog配置文件所處的目錄如下圖所示。

    image.png

  2. 編輯tablestore.properties文件并根據實際修改配置示例后拷貝到文件中。

    使用Meta表動態配置方式時,請配置tablestore.schema-modemeta-table

    說明

    如果要使用本地靜態文件配置方式進行Schema配置,請配置tablestore.schema-modefile并配置tablestore.schema-file為本地靜態文件完整路徑,然后在靜態文件中配置Schema信息。更多信息,請參見Server配置

    connector.name=tablestore
    tablestore.schema-mode=meta-table
    #tablestore.schema-mode=file
    tablestore.schema-file=/users/test/tablestore/presto/tablestore.schema
    tablestore.meta-instance=metastoreinstance
    tablestore.endpoint=http://metastoreinstance.cn-hangzhou,ots.aliyuncs.com/
    tablestore.accessid=****************
    tablestore.accesskey=**************************
    tablestore.meta-table=meta_table
    tablestore.auto-create-meta-table=true

    具體配置項說明請參見下表。

    配置項

    示例

    是否必選

    說明

    connector.name

    tablestore

    連接器名稱。此項必須配置tablestore。

    tablestore.schema-mode

    meta-table

    Schema模式配置。此處配置為meta-table

    tablestore.meta-instance

    metastoreinstance

    Tablestore中用于存儲元數據的實例,請根據實際修改。更多信息,請參見實例

    重要

    請確保配置的實例已在阿里云賬號中存在。

    tablestore.endpoint

    http://metastoreinstance.cn-hangzhou,ots.aliyuncs.com/

    Tablestore中用于存儲元數據的實例的訪問地址,請修改實際修改。更多信息,請參見服務地址

    tablestore.accessid

    ****************

    具有存儲元數據的實例訪問權限的用戶AccessKey IDAccessKey Secret。

    tablestore.accesskey

    **************************

    tablestore.meta-table

    meta_table

    Tablestore中用于存儲元數據的表名,請根據實際修改。

    tablestore.auto-create-meta-table

    true

    是否需要自動創建元數據表。默認值為true,表示創建Schema時會自動創建元數據表。

  3. 保存配置文件并退出。

    說明

    您可以執行cat命令確認配置是否保存成功。

步驟二:運行PrestoSQL CLI

對接完成后,您可以啟動Presto Server并運行SQL。

  1. 獲取client可執行程序。

    1. 下載PrestoDB客戶端。

      此處以presto-cli-0.280-executable.jar為例介紹。

    2. PrestoDB客戶端保存到PrestoDB安裝目錄下的bin目錄中。

    3. PrestoDB安裝目錄下的bin目錄中執行如下命令獲取client可執行程序。

      # 將PrestoDB客戶端文件重命名為presto。其中presto-cli-0.280-executable.jar請替換為實際所用的客戶端版本名稱。
      mv presto-cli-0.280-executable.jar presto
      # 為用戶授予操作presto文件的權限。
      chmod +x presto

      client可執行程序的所處目錄如下圖所示。

      image.png

  2. PrestoDB安裝目錄下的bin目錄中執行命令啟動Presto Server。

    重要

    啟動Presto Server時,您必須分別啟動Coordinator和至少一個Worker。

    # 支持前臺運行和后臺運行兩種啟動方式,其中前臺運行方式更方便查看運行日志。
    # 方式一:后臺運行
    ./launcher start
    # 方式二:前臺運行
    ./launcher run
  3. PrestoDB安裝目錄下的bin目錄中執行如下命令啟動SQL CLI。

    說明
    • PrestoDB默認運行在8080端口。如果要修改端口配置,請修改etc/config.properties中的http-server.http.port配置。

    • 修改部分config配置后需要重啟服務器使配置生效。

    • 命令中的./prestoclient可執行程序在PrestoDB安裝目錄下的bin目錄中的相對路徑。

    ./presto --server localhost:8080 --catalog tablestore --schema default

    配置項說明請參見下表。

    配置項

    示例

    是否必選

    說明

    --server

    localhost:8080

    Presto ServerURI,請根據實際替換。此項的配置必須與PrestoDB安裝目錄下etc/config.properties文件中的discovery.uri參數的配置相同。

    --catalog

    tablestore

    Catalog配置文件的名稱,此處配置為tablestore,與創建的Catalog配置文件名稱相同。

    --schema

    default

    Schema配置,保持default配置即可。

步驟三:創建Schema和映射表

使用Meta表動態配置的Schema配置模式時,您需要手動創建并使用Schema用于配置對接的Tablestore實例和進行用戶鑒權,然后再創建Tablestore表的映射表用于數據查詢和分析。

說明

如果使用的是本地靜態文件配置的Schema配置模式,則無需執行此步驟。

  1. 執行如下命令創建Schema。

    創建一個訪問Tablestore myinstance實例的Schema,Schema名稱為testdb。

    CREATE SCHEMA tablestore.testdb
    WITH (
      endpoint = 'https://myinstance.cn-hangzhou.ots.aliyuncs.com',
      instance_name = 'myinstance',
      access_id = '************************',
      access_key = '********************************'
    );

    具體參數配置說明請參見下表。

    參數

    示例

    是否必選

    說明

    endpoint

    https://myinstance.cn-hangzhou.ots.aliyuncs.com

    Tablestore實例的訪問地址。更多信息,請參見服務地址

    instance_name

    myinstance

    Tablestore實例名稱。更多信息,請參見實例

    access_id

    ************************

    阿里云賬號或者RAM用戶的AccessKey ID。

    access_key

    ********************************

    阿里云賬號或者RAM用戶的AccessKey Secret。

  2. 執行use <SCHEMA_NAME>;命令使用創建的Schema。

    其中<SCHEMA_NAME>請替換為實際創建的Schema名稱。您可以執行show schemas;命令獲取Schema列表。

  3. 執行如下命令Tablestore數據表的映射表。

    重要

    創建映射表時,請注意如下事項:

    • 請確保映射表中的字段類型和表格Tablestore數據表中的字段類型相匹配更多信息,請參見字段類型映射

    • 映射表名稱必須與Tablestore中實際的表名稱相同。

    • SQL語句CREATE TABLE中的table_name用于映射到Tablestore中實際的表。您可以為Tablestore中的同一個數據表創建多個不同的映射表。

    • 映射表中必須包括數據表的所有主鍵列,但是支持只包括部分屬性列。

    • 映射表中主鍵列的名稱和順序必須與Tablestore數據表中主鍵列的名稱和順序保持一致。映射表中每一個屬性列可通過指定 origin_name參數來映射到Tablestore中實際表內的列名。

    假設數據表名為main_table,包括giduid兩個主鍵列以及col1、col2col3三個屬性列。

    以下SQL示例用于為Tablestore數據表main_table創建一個同名映射表。

    CREATE TABLE if not exists main_table
    (
       gid bigint,
       uid bigint,
       c1 boolean with (origin_name = 'col1'),
       c2 bigint with (origin_name = 'col2'),
       c3 varchar with (origin_name = 'col3')
    ) WITH (
       table_name = 'main_table'
    );

步驟四:使用SQL操作數據

重要

使用SQL操作Tablestore數據前,請確保已使用use <SCHEMA_NAME>;命令使用所需Schema。

使用SQL語句查詢Schema配置、表的元數據以及讀寫Tablestore表中數據。更多SQL示例,請參見常用SQL示例

  1. 查詢Schema配置。

    • 獲取Schema列表

      show schemas;
    • 獲取指定Schema中表列表

      show tables;
  2. 查看指定表的元數據

    其中<TABLE_NAME>請替換為實際的表名稱。

    describe <TABLE_NAME>;
  3. 數據操作。

    讀寫Tablestore數據。

    • 寫入數據

      • 插入一行數據

        以下示例用于在main_table中插入一行數據。

        insert into main_table values(10001,10001,true,100,'hangzhou');
      • 批量導入數據

        重要

        批量導入數據前,請確保已創建目標表,且目標表的表結構與源數據表的表結構保持一致。

        以下示例用于將main_table表中gid大于0uid小于10000gid、uid、c1、c2c3列數據批量導入到sampletable表中。

        insert into sampletable select gid, uid, c1, c2, c3 from main_table where gid > 0 and uid < 100000;
    • 讀取數據

      以下示例用于查詢sampletable表中gid列值大于0,uid列值小于10c1等于true的行數據。

      select * from sampletable where gid > 0 and uid < 10 and c1 = true;

計費說明

表格存儲支持VCU模式(原預留模式)和CU模式(原按量模式)兩種計費模式,請根據所用的實例模型參考相應計費模式了解計費信息。更多信息,請參見計費概述

  • VCU模式(原預留模式):計費項包括計算能力、數據存儲量和外網下行流量,其中數據存儲量包括高性能存儲、容量型存儲和多元索引存儲。

    使用計算引擎訪問表格存儲時會消耗計算資源。存儲元數據的表占用的數據存儲量與創建實例時的存儲規格相關。

  • CU模式(原按量模式):計費項包括讀吞吐量、寫吞吐量、數據存儲量和外網下行流量。

    使用計算引擎訪問表格存儲時,表格存儲會根據具體的讀寫請求按照讀寫吞吐量計量計費。存儲元數據的表占用的數據存儲量與創建實例時的存儲規格相關。

相關文檔