更新时间:2022-04-24 GMT+08:00
分享

使用ODBC提交作业

操作场景

在Windows环境下您可以使用ODBC应用程序连接DLI服务端提交作业。

注意事项

仅支持Windows 2012及以上版本操作系统。

前提条件

在使用ODBC前,需要进行如下操作:

  1. 授权。

    DLI使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的企业级多租户管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。

    通过IAM,您可以在华为云账号中给员工创建IAM用户,并使用策略来控制他们对华为云资源的访问范围。

    目前包括角色(粗粒度授权)和策略(细粒度授权)。具体的权限介绍和授权操作请参考《数据湖探索用户指南》。

  2. 创建队列。在“队列类型”中选择“SQL队列”,即SQL作业的计算资源。
    DLI管理控制台中,创建队列的操作入口有三个,分别在“总览”页面、“SQL编辑器”页面和“队列管理”页面。
    • 单击总览页面右上角 进行创建队列。
    • “队列管理”页面创建队列。
      1. 在DLI管理控制台的左侧导航栏中,选择“队列管理”
      2. “队列管理”页面右上角进行创建队列。
    • “SQL编辑器”页面创建队列。
      1. 在DLI管理控制台的顶部菜单栏中,选择“SQL编辑器”
      2. 在左侧导航栏的页签,单击“队列”右侧的创建队列。

    如果创建队列的用户不是管理员用户,在创建队列后,需要管理员用户赋权后才可使用。关于赋权的具体操作请参考《数据湖探索用户指南》。

操作步骤

  1. 解压安装包。

    将“huaweicloud-dli-odbc-<version>.zip”解压到系统任意目录下。

  2. 安装ODBC驱动。

    1. 双击执行解压目录下的“huaweicloud-dli-odbc-<version>-setup.exe”文件。
    2. 点击“Next”按钮安装ODBC驱动。
      图1 ODBC驱动安装导航
      1. 选择安装目录,默认安装路径为“C:\huaweicloud-dli-odbc”。完成选择后,点击“Next”继续安装。
        图2 选择安装目录

        建议使用默认安装路径,如果修改为其他安装路径,需要手动修改日志配置文件。

      2. 选择开始菜单目录,完成选择后,点击“Next”继续安装。
        图3 选择开始菜单目录
      3. 确认安装目录和开始菜单路径后,点击“Install”安装ODBC驱动。
        图4 确认安装目录和开始菜单路径
      4. 点击“Finish”完成ODBC驱动安装。
        图5 完成安装

  3. 配置日志参数(可选)。

    当ODBC驱动安装目录不是“C:\huaweicloud-dli-odbc”时,需要执行该步骤。

    1. 打开驱动安装目录下的log.properties文件,例如:“C:\xxx\windows\log.properties”。
    2. 修改日志输出路径,例如:“log4cplus.appender.DLILog.File=C:\xxx\windows\log\dli_odbc.log”。

      日志输出路径建议为安装路径下log目录,根据实际安装路径配置。

  4. 配置数据源。

    1. 进入Windows控制面板中的管理工具,双击“ODBC Data Sources (32-bit)”启动32位ODBC数据源管理器。
      32位的ODBC数据源管理器也可以通过下面程序启动:
      • 64位Windows系统请使用:C:\Windows\SysWOW64\odbcad32.exe
      • 32位Windows系统请使用:C:\Windows\System32\odbcad32.exe
    2. 添加数据源。

      添加用户数据源使用“User DSN”标签,添加系统数据源使用“System DSN”标签。点击“Add”按钮添加数据源。

      图6 ODBC数据源管理器
    3. 选择“Huawei Cloud DLI Driver”,点击“Finish”按钮。
      图7 创建新的数据源
    4. 填写ODBC驱动配置参数,点击“OK”完成数据源配置。ODBC驱动配置参数参考表1
      图8 DLI ODBC驱动配置
      • 除DSN外,其他参数均可在应用程序中通过ODBC连接参数配置。对于同一个参数,当ODBC连接参数与数据源同时配置时,ODBC驱动优先使用应用程序连接参数中的配置参数。
      • 当有多个Extra Configuration时,配置方式为:KEY1=VALUE1;KEY2=VALUE2
      表1 DLI ODBC驱动配置参数

      属性项

      必须配置

      默认值

      描述

      DSN

      -

      ODBC数据源名称,在应用程序的链接字符串中使用该名称。

      REGION

      -

      对接的DLI服务的Region,例如:cn-north-1。

      HOST

      -

      对接的DLI服务的域名。。

      PROJECTID

      -

      用户访问的DLI服务使用的项目编号。

      AUTHMODE

      -

      链接DLI服务使用的认证模式,当前支持AK/SK和TOKEN两种模式,参考认证。0表示使用TOKEN模式;1表示AK/SK模式。

      ACCOUNT

      -

      登录华为云的账号名称,当选择认证模式为TOKEN时需要配置。

      USER

      -

      登录华为云的IAM子用户名称,当选择认证模式为TOKEN时需要配置。

      采用主账号登录时,该参数配置与ACCOUNT相同,为华为云的账号名称。

      PASSWORD

      -

      登录华为云的用户密码,当选择认证模式为TOKEN时需要配置。

      AK

      -

      用户的Access Key,当选择认证模式为AK/SK时需要配置。

      SK

      -

      用户的Secret Key,当选择认证模式为AK/SK时需要配置。

      DATABASE

      default

      用户使用的数据库名。

      QUEUENAME

      default

      用户使用的队列名。

      USEPROXY

      0

      是否使用代理访问DLI服务。0表示不使用代理;1表示使用代理。该参数在Extra Configuration中配置。

      PROXYHOST

      -

      代理服务器地址。该参数在Extra Configuration中配置。

      PROXYPORT

      -

      代理服务器端口。该参数在Extra Configuration中配置。

      JOBTIMEOUT

      300

      提交DLI作业的超时时间,单位为秒。该参数在Extra Configuration中配置。

    5. 完成数据源配置后,可在驱动管理器中看到配置的数据源。
      图9 查看配置的数据源

示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.Odbc;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "DSN=DLIODBCSysDS;AUTHMODE=0;ACCOUNT=xxx;USER=xxx;PASSWORD=xxx";

            string queryString = "show tables;";
            OdbcCommand command = new OdbcCommand(queryString);

            using (OdbcConnection connection = new OdbcConnection(connectionString))
            {

                OdbcDataReader reader;
                try
                {
                    command.Connection = connection;

                    connection.Open();

                    reader = command.ExecuteReader();

                    while (reader.Read())
                    {
                        Console.WriteLine("\t{0}\t{1}\t{2}", 
reader[0], reader[1], reader[2]);
                    }

                    reader.Dispose();
                    reader.Close();

                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            command.Dispose();
        }
    }
}
  1. 示例为C#样例代码。
  2. 实际使用时,将代码样例中“string connectionString”指定的DSN修改为4配置的数据源名称。
分享:

    相关文档

    相关产品

close