全部產品
Search
文件中心

Data Lake Analytics - Deprecated:OceanBase

更新時間:Jul 06, 2024

DLA支援通過CU版訪問使用者自建的OceanBase,通過標準SQL語句查詢OceanBase中的資料或者直接向OceanBase寫入資料。本文介紹如何通過DLA讀寫OceanBase上的資料。

前提條件

  • 目前僅支援通過CU版訪問OceanBase,請確保您已開通CU版,開通方式,請參見DLA Presto CU版本快速入門
  • 虛擬叢集繫結資料源網路必須和OceanBase叢集在同一個VPC下面。

準備工作

在通過DLA讀寫OceanBase資料前,您需要在OceanBase中建立測試表。

以下為建立OceanBase表的樣本:
create table person (
  id bigint, 
  name varchar(64),
  age int);

操作步驟

  1. 串連DLA
  2. 建立庫
    CREATE DATABASE `oceanbase_test`
    WITH DBPROPERTIES (
      catalog = 'oceanbase', 
      location = 'jdbc:oceanbase://oceanbaseIp:oceanbasePort/testDatabaseName',
      user = 'userName',
      password = 'password', 
      vpc_id = 'vpcId',
      instance_id = 'instanceId' );
    參數說明如下:
    • CATALOG:取值為oceanbase,表示建立的是Oceanbase Schema。
    • LOCATION:填寫oceanBase的地址,以及對應oceanBase中的database名。
    • USER:OceanBase資料庫的使用者名稱。
    • PASSWORD:OceanBase資料庫的密碼。
    • VPC_ID:OceanBase所在的網路vpcId。
    • INSTANCE_ID:部署OceanBase的instanceId。
  3. 建立表
    CREATE EXTERNAL TABLE oceanbase_test.person (
      id int,
      name varchar,
      age int);
    重要 表名、欄位的順序和類型要和OceanBase中對應的表保持一致。
  4. 訪問資料由於只有CU的計算資源和OceanBase網路可以聯通,因此所有訪問OceanBase表的SQL語句都需要指定hint: /*+cluster=your-vc-name*/ ,這樣SQL就會在CU中執行。
    例如:
    mysql> /*+ cluster=vc-test */ insert into oceanbase_test.person values (1, 'james', 10);
    +------+
    | rows |
    +------+
    |    1 |
    +------+
    1 row in set (0.46 sec)
    mysql> /*+ cluster=vc-test */ select id, name, age from oceanbase_test.person;
    +------+-------+------+
    | id   | name  | age  |
    +------+-------+------+
    |    1 | james |   10 |
    +------+-------+------+
    1 row in set (0.43 sec)

    更多SQL資訊,請參見常用SQL