CREATE-RESOURCE

Name

CREATE RESOURCE

Description

This statement is used to create a resource. Only the root or admin user can create resources. Currently supports Spark, ODBC, S3 external resources. In the future, other external resources may be added to Doris for use, such as Spark/GPU for query, HDFS/S3 for external storage, MapReduce for ETL, etc.

grammar:

  1. CREATE [EXTERNAL] RESOURCE "resource_name"
  2. PROPERTIES ("key"="value", ...);

illustrate:

  • The type of resource needs to be specified in PROPERTIES “type” = “[spark|odbc_catalog|s3]“, currently supports spark, odbc_catalog, s3.
  • PROPERTIES differs depending on the resource type, see the example for details.

Example

  1. Create a Spark resource named spark0 in yarn cluster mode.

    1. CREATE EXTERNAL RESOURCE "spark0"
    2. PROPERTIES
    3. (
    4. "type" = "spark",
    5. "spark.master" = "yarn",
    6. "spark.submit.deployMode" = "cluster",
    7. "spark.jars" = "xxx.jar,yyy.jar",
    8. "spark.files" = "/tmp/aaa,/tmp/bbb",
    9. "spark.executor.memory" = "1g",
    10. "spark.yarn.queue" = "queue0",
    11. "spark.hadoop.yarn.resourcemanager.address" = "127.0.0.1:9999",
    12. "spark.hadoop.fs.defaultFS" = "hdfs://127.0.0.1:10000",
    13. "working_dir" = "hdfs://127.0.0.1:10000/tmp/doris",
    14. "broker" = "broker0",
    15. "broker.username" = "user0",
    16. "broker.password" = "password0"
    17. );

    Spark related parameters are as follows:

    • spark.master: Required, currently supports yarn, spark://host:port.
    • spark.submit.deployMode: The deployment mode of the Spark program, required, supports both cluster and client.
    • spark.hadoop.yarn.resourcemanager.address: Required when master is yarn.
    • spark.hadoop.fs.defaultFS: Required when master is yarn.
    • Other parameters are optional, refer to here

Working_dir and broker need to be specified when Spark is used for ETL. described as follows:

  • working_dir: The directory used by the ETL. Required when spark is used as an ETL resource. For example: hdfs://host:port/tmp/doris.
  • broker: broker name. Required when spark is used as an ETL resource. Configuration needs to be done in advance using the ALTER SYSTEM ADD BROKER command.
  • broker.property_key: The authentication information that the broker needs to specify when reading the intermediate file generated by ETL.
  1. Create an ODBC resource

    1. CREATE EXTERNAL RESOURCE `oracle_odbc`
    2. PROPERTIES (
    3. "type" = "odbc_catalog",
    4. "host" = "192.168.0.1",
    5. "port" = "8086",
    6. "user" = "test",
    7. "password" = "test",
    8. "database" = "test",
    9. "odbc_type" = "oracle",
    10. "driver" = "Oracle 19 ODBC driver"
    11. );

    The relevant parameters of ODBC are as follows:

    • hosts: IP address of the external database
    • driver: The driver name of the ODBC appearance, which must be the same as the Driver name in be/conf/odbcinst.ini.
    • odbc_type: the type of the external database, currently supports oracle, mysql, postgresql
    • user: username of the foreign database
    • password: the password information of the corresponding user
    • charset: connection charset
    • There is also support for implementing custom parameters per ODBC Driver, see the description of the corresponding ODBC Driver
  2. Create S3 resource

    1. CREATE RESOURCE "remote_s3"
    2. PROPERTIES
    3. (
    4. "type" = "s3",
    5. "s3_endpoint" = "http://bj.s3.com",
    6. "s3_region" = "bj",
    7. "s3_root_path" = "/path/to/root",
    8. "s3_access_key" = "bbb",
    9. "s3_secret_key" = "aaaa",
    10. "s3_max_connections" = "50",
    11. "s3_request_timeout_ms" = "3000",
    12. "s3_connection_timeout_ms" = "1000"
    13. );

    S3 related parameters are as follows:

    • Required parameters
      • s3_endpoint: s3 endpoint
      • s3_region: s3 region
      • s3_root_path: s3 root directory
      • s3_access_key: s3 access key
      • s3_secret_key: s3 secret key
    • optional parameter
      • s3_max_connections: the maximum number of s3 connections, the default is 50
      • s3_request_timeout_ms: s3 request timeout, in milliseconds, the default is 3000
      • s3_connection_timeout_ms: s3 connection timeout, in milliseconds, the default is 1000

Keywords

  1. CREATE, RESOURCE

Best Practice