开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请问下,flinksql操作Oracle是必须使用sid吗?servicename是不行的是吗?

请问下,flinksql操作Oracle是必须使用sid吗?servicename是不行的是吗

展开
收起
cuicuicuic 2023-05-30 11:49:00 159 0
1 条回答
写回答
取消 提交回答
  • 存在即是合理

    在 Flink SQL 中操作 Oracle 数据库时,必须使用 SID(Service Identification Number)而不是服务名称。SID 是 Oracle 数据库实例的唯一标识符,用于区分不同的数据库实例。

    以下是使用 Flink SQL 操作 Oracle 数据库的示例代码:

    
    -- 建立连接
    CONNECTION.DATASOURCE = 'jdbc:oracle:thin:@//localhost:1521/ORCL';
    CONNECTION.USER = 'username';
    CONNECTION.PASSWORD = 'password';
    
    -- 定义表结构
    CREATE TABLE my_table (
      id INT,
      name VARCHAR2(50),
      age INT
    ) WITH (
      'connector'.'format' = 'org.apache.flink.table.data.OracleTableFormat',
      'connector.version'='1.2',
      'connector.table.name'='my_table',
      'connector.credentials.kerberos.sid' = 'ORCL', // 必须使用 SID
      'connector.credentials.kerberos.servicename' = NULL // 可以为空
    );
    
    -- 插入数据
    INSERT INTO my_table VALUES (1, 'Alice', 25);
    INSERT INTO my_table VALUES (2, 'Bob', 30);
    INSERT INTO my_table VALUES (3, 'Charlie', 35);
    
    -- 查询数据
    SELECT * FROM my_table;
    
    -- 关闭连接
    DISCONNECT;
    
    
    

    在上面的示例代码中,我们使用了 CONNECTION.CREDENTIALS 属性来指定连接参数。其中,kerberos.sid 属性必须设置为 Oracle 数据库实例的 SID,而 kerberos.servicename 属性可以为空。

    2023-05-31 12:46:19
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关镜像