Hhuawei-committermessage
4705e721创建于 2022年9月24日历史提交
文件最后提交记录最后更新时间
3 年前
README.md

0.版本说明

本示例配套的SDK版本为:3.0.104

1.功能介绍

本示例展示如何基于数据库和应用迁移 UGO服务的SDK,实现异构数据库之间的SQL语句转换。

2.前置条件

  • 注册华为云, 并完成实名认证
  • 已获取华为云开发工具包(SDK)。
  • 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。 具体请参考访问密钥
  • 已具备开发环境 ,支持Java JDK 1.8及其以上版本。

3.SDK获取和安装

您可以通过Maven配置所依赖的SDK,具体的SDK版本号请参见SDK开发中心

<dependency>
    <groupId>com.huaweicloud.sdk</groupId>
    <artifactId>huaweicloud-sdk-ugo</artifactId>
    <version>3.0.104</version>
</dependency>

4.示例代码

以下代码展示如何使用SDK实现异构数据库之间的SQL语句转换:

/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2022-2022. All rights reserved.
 */

package com.huawei.demo;

import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.http.HttpConfig;
import com.huaweicloud.sdk.ugo.v1.UgoClient;
import com.huaweicloud.sdk.ugo.v1.model.RunSqlConversionRequest;
import com.huaweicloud.sdk.ugo.v1.model.RunSqlConversionResponse;
import com.huaweicloud.sdk.ugo.v1.model.SqlConvertReq;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 数据库和应用迁移 UGO的示例代码:SQL语句转换
 *
 * @since 2022-08-20
 */
public class SqlConversionDemo {

    private static final Logger logger = LoggerFactory.getLogger(SqlConversionDemo.class);

    public static void main(String[] args) {

        UgoClient ugoClient = getUgoClient();

        // Start to convert SQL statement
        RunSqlConversionRequest sqlConversionRequest = new RunSqlConversionRequest();
        SqlConvertReq sqlConversionBody = new SqlConvertReq();
        sqlConversionBody.setSourceDbType(SqlConvertReq.SourceDbTypeEnum.ORACLE);
        sqlConversionBody.setTargetDbType(SqlConvertReq.TargetDbTypeEnum.RDS_FOR_MYSQL);
        sqlConversionBody.setTargetDbVersion(SqlConvertReq.TargetDbVersionEnum._5_7);
        sqlConversionBody.setSqlStatement("select * from dual;");
        sqlConversionRequest.setBody(sqlConversionBody);
        RunSqlConversionResponse runSqlConversionResponse = ugoClient.runSqlConversion(sqlConversionRequest);
        logger.info(runSqlConversionResponse.toString());
    }

    private static UgoClient getUgoClient() {
        String ak = "<YOUR AK>";
        String sk = "<YOUR SK>";
        String endpoint = "<YOUR ENDPOINT>";
        String projectId = "<YOUR PROJECTID>";

        // Http Configuration for client
        HttpConfig config = HttpConfig.getDefaultHttpConfig();
        config.withIgnoreSSLVerification(true);

        // Create the authentication
        BasicCredentials auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk)
                .withProjectId(projectId);

        // Create UgoClient instance
        return UgoClient.newBuilder()
                .withHttpConfig(config)
                .withCredential(auth)
                .withEndpoint(endpoint)
                .build();
    }
}

5.返回结果示例

  • SQL语句转换(RunSqlConversion)接口的返回值:
{
    "converted_sql_statement":"select * from dual;",
    "is_support_conversion":true
}

6.参考链接

更多信息请参考API Explorer 和数据库和应用迁移 UGO服务文档的API参考

修订记录

发布日期 文档版本 修订说明
2022-09-22 1.0 文档首次发布