閱讀915 返回首頁    go windows


8.1 業務係統連接並進行查詢__第八章 在生產中使用分析型數據庫_使用手冊_分析型數據庫-阿裏雲

使用jdbc odbc php python R-Mysql等連接分析型數據庫的例子和注意事項介紹,以及流控、retry鏈接、異常處理等方法。

分析型數據庫集群係統部署在阿裏雲環境中,用戶在部署業務應用係統時,盡可能保證業務係統與阿裏雲環境的網絡聯通性,如購買阿裏雲ECS主機( https://www.aliyun.com/product/ecs/ )作為業務係統的服務器。

JDBC直接連接分析型數據庫

最簡單直接的連接並訪問分析型數據庫的方式是通過JDBC,分析型數據庫支持MySQL自帶的客戶端以及大部分版本的mysql-jdbc驅動。

支持的mysql jdbc驅動版本號

  • 5.0係列: 5.0.2,5.0.3,5.0.4,5.0.5,5.0.7,5.0.8
  • 5.1係列: 5.1.1,5.1.2,5.1.3,5.1.4,5.1.5,5.1.6,5.1.7,5.1.8,5.1.11,5.1.12,5.1.13,5.1.14,5.1.15,5.1.16,5.1.17,5.1.18,5.1.19,5.1.20,5.1.21,5.1.22,5.1.23,5.1.24,5.1.25,5.1.26,5.1.27,5.1.28,5.1.29,5.1.31
  • 5.4係列
  • 5.5係列

Java程序中,將合適的mysql-jdbc驅動包(mysql-connector-java-x.x.x.jar)加入CLASSPATH中,通過以下示例程序就能連接並訪問分析型數據庫。通過該JDBC方式直連分析型數據庫時,和直連MySQL類似,需注意在使用完連接並不準備進行複用的情況下,需要釋放連接資源。 用戶根據具體情況,設置${url}, ${my_access_key_id}, ${my_access_key_secret}和${query}值。


        Connection connection = null;
        Statement statement = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://mydbname-xxxx.ads-hz.aliyuncs.com:5544/my_ads_db?useUnicode=true&characterEncoding=UTF-8";

            Properties connectionProps = new Properties();
            connectionProps.put("user", "my_access_key_id");
            connectionProps.put("password", "my_access_key_secret");

            connection = DriverManager.getConnection(url, connectionProps);
            statement = connection.createStatement();

            String query = "select count(*) from information_schema.tables";
            rs = statement.executeQuery(query);

            while (rs.next()) {
                System.out.println(rs.getObject(1));
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

通過JDBC連接池連接分析型數據庫

通過JDBC連接池來連接分析型數據庫是不錯的選擇,在1.5章節中,已經演示了通過連接池Druid連接分析型數據庫的方式,請參考。

通過PHP連接分析型數據庫

在1.5章節中,已經演示了在PHP應用中連接分析型數據庫的方式,請參考。

關於負載均衡

用戶在創建數據庫(章節3.1)時,分析型數據庫會根據用戶指定的服務參數,為用戶在分析型數據庫集群中分配特定數量的前端服務機,這些機器對用戶透明,用戶得到的是訪問該數據庫的URL(例如:mydbname-xxxx.ads-hz.aliyuncs.com:5544,在控製台中的連接信息中獲取),分析型數據庫集群自己使用阿裏雲負載均衡產品SLB( https://www.aliyun.com/product/slb )來對訪問請求進行負載均衡,用戶無需關心訪問分析型數據庫時的負載均衡策略。 若用戶的業務應用自己想采用一定的負載均衡方案,可以參考 https://www.aliyun.com/product/slb

關於重試以及異常處理

網絡環境下連接和使用分析型數據庫,從業務應用的角度來看,使用適當的重試和異常處理機製是保證業務應用高可用性的手段之一。 無論是通過JDBC直連、JDBC連接池、PHP,還是Python等方式連接分析型數據庫,出現連接連接異常時,應用均可采用適當的重試機製來保證連接可用性。在海量數據並發處理任務量大的情況下,偶爾在查詢過程中出現異常時,也可采用適當的重試機製來重發查詢。

最後更新:2016-11-24 11:23:46

  上一篇:go 7.5 實時寫入優化__第七章 性能優化和診斷_使用手冊_分析型數據庫-阿裏雲
  下一篇:go 8.2 數據導入任務生產指南__第八章 在生產中使用分析型數據庫_使用手冊_分析型數據庫-阿裏雲