日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

使用应用程序(Java/Python)访问MaxCompute Lightning进行数据开发

發布時間:2025/3/8 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用应用程序(Java/Python)访问MaxCompute Lightning进行数据开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MaxCompute Lightning是MaxCompute產品的交互式查詢服務,支持以PostgreSQL協議及語法連接訪問Maxcompute項目,讓您使用熟悉的工具以標準 SQL查詢分析MaxCompute項目中的數據,快速獲取查詢結果。
很多開發者希望利用Lightning的特性來開發數據應用,本文將結合示例來介紹Java和Python如何連接訪問Lightning進行應用開發(參考時需要替換為您項目所在region的Endpoint及用戶認證信息)。
一、Java使用JDBC訪問Lightning
示例如下:

import java.sql.*;public class Main {private static Connection connection;public static void main(String[] args) throws SQLException {String url = "jdbc:postgresql://lightning.cn-shanghai.maxcompute.aliyun.com:443/your_project_name?prepareThreshold=0&sslmode=require";String accessId = "<your_maxcompute_access_id>";String accessKey = "<your_maxcompute_access_key>";String sql = "select * from dual";try {Connection conn = getCon(url, accessId, accessKey);Statement st = conn.createStatement();System.out.println("Send Lightning query");ResultSet rs = st.executeQuery(sql);while (rs.next()) {System.out.println(rs.getString(1)+ "\t");}System.out.println("End Lightning query");conn.close();} catch (SQLException e) {e.printStackTrace();}}public static Connection getCon(String lightningsHost, String lightningUser, String lightningPwd) {try {if (connection == null || connection.isClosed()) {try {Class.forName("org.postgresql.Driver").newInstance();DriverManager.setLoginTimeout(1);connection = DriverManager.getConnection(lightningsHost, lightningUser, lightningPwd);} catch (Exception ex) {ex.printStackTrace();}}} catch (Exception ex) {ex.printStackTrace();}return connection;} }復制代碼

二、Java使用druid訪問Lightning
1.pom依賴

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.23</version></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>9.3-1101-jdbc4</version></dependency> 復制代碼

2.spring配置

<bean id="LightningDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><property name="url" value="jdbc:postgresql://lightning.cn-shanghai.maxcompute.aliyun.com:443/project_name?prepareThreshold=0&sslmode=require”/> <!--替換成自己project所在region的Endpoint—><property name="username" value=“訪問用戶的Access Key ID"/><property name="password" value="訪問用戶的Access Key Secret"/><property name="driverClassName" value="org.postgresql.Driver"/><property name="dbType" value="postgresql"/><property name="initialSize" value="1" /> <property name="minIdle" value="1" /><property name="maxActive" value="5" /> <!—Lightning服務每個project的連接數限制20,所以不要配置過大,按需配置,否則容易出現query_wait_timeout錯誤 --><!--以下兩個配置,檢測連接有效性,修復偶爾出現create connection holder error錯誤 --><property name="testWhileIdle" value="true" /><property name="validationQuery" value="SELECT 1" /></bean><bean class="com.xxx.xxx.LightningProvider"><property name="druidDataSource" ref="LightningDataSource"/></bean>復制代碼

3.代碼訪問

public class LightningProvider {DruidDataSource druidDataSource;/*** 執行sql* @param sql* @return* @throws Exception*/public void execute(String sql) throws SQLException {DruidPooledConnection connection = null ;Statement st = null;try{connection = druidDataSource.getConnection();st = connection.createStatement();ResultSet resultSet = st.executeQuery(sql);//對返回值的解析和處理的代碼//按行處理,每行的數據放到一個map中ResultSetMetaData metaData = resultSet.getMetaData();int columnCount = metaData.getColumnCount();List<LinkedHashMap> rows = Lists.newArrayList();while(resultSet.next()){LinkedHashMap map = Maps.newLinkedHashMap();for(int i=1;i<=columnCount;i++){String label = resultSet.getMetaData().getColumnLabel(i);map.put(label,resultSet.getString(i));}rows.add(map);} }catch (Exception e){e.printStackTrace();}finally {try {if(st!=null) {st.close();}} catch (SQLException e) {e.printStackTrace();}try {if(connection!=null) {connection.close();}} catch (SQLException e) {e.printStackTrace();}}} }復制代碼

三、Python使用pyscopg2訪問Lightning
示例如下:

#!/usr/bin/env python # coding=utf-8import psycopg2 import sysdef query_lightning(lightning_conf, sql):"""Query data through Lightning by sqlArgs:lightning_conf: a map contains settings of 'dbname', 'user', 'password', 'host', 'port'sql: query submit to LightningReturns:result: the query result in format of list of rows"""result = Noneconn = Noneconn_str = Nonetry:conn_str = ("dbname={dbname} ""user={user} ""password={password} ""host={host} ""port={port}").format(**lightning_conf)except Exception, e:print >> sys.stderr, ("Invalid Lightning' configuration ""{}".format(e))sys.exit(1)try:conn = psycopg2.connect(conn_str)conn.set_session(autocommit=True) # This will disable transaction# started with keyword BEGIN,# which is currently not# supported by Lightning’ public servicecur = conn.cursor()# execute Lightning' querycur.execute(sql)# get resultresult = cur.fetchall()except Exception, e:print >> sys.stderr, ("Failed to query data through ""Lightning: {}".format(e))finally:if conn:conn.close()return resultif __name__ == "__main__":# step1. setup configurationlightning_conf = {"dbname": “your_project_name”,"user": "<your_maxcompute_access_id>", "password": "<your_maxcompute_access_key>", "host": "lightning.cn-shanghai.maxcompute.aliyun.com", #your region lightning endpoint"port": 443}# step2. issue a queryresult = query_lightning(lightning_conf, "select * from test”)# step3. print resultif result:for i in xrange(0, len(result)):print "Got %d row from Lightning:%s" % (i + 1, result[i])復制代碼

四、Python使用ODBC訪問Lightning
您需要現在電腦上安裝并和配置odbc驅動。代碼示例如下:

import pyodbc conn_str = ("DRIVER={PostgreSQL Unicode};""DATABASE=your_project_name;""UID=your_maxcompute_access_id;""PWD=your_maxcompute_access_key;""SERVER=lightning.cn-shanghai.maxcompute.aliyun.com;" #your region lightning endpoint"PORT=443;") conn = pyodbc.connect(conn_str) crsr = conn.execute("SELECT * from test”) row = crsr.fetchone() print(row) crsr.close() conn.close()復制代碼

由于Lightning提供了PostgreSQL兼容的接口,您可以像開發PostgreSQL的應用一樣開發Lightning應用程序。


總結

以上是生活随笔為你收集整理的使用应用程序(Java/Python)访问MaxCompute Lightning进行数据开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天射天天干 | 日韩理论视频 | 国产在线免费视频 | 99精品免费观看 | 久久国内精品 | 日韩综合av | 日韩成人高清在线 | 亚洲三级黄色 | 色日本在线 | 国产第一页精品 | 国产欧美久久久久 | 成人欧美日韩 | 亚洲一区在线免费 | 捆绑调教视频网站 | 天天插天天干 | 日本高清一区二区视频 | 视频一区二区三区在线观看 | 日日爽夜夜爽 | 青青色在线| 久久国产小视频 | 精品福利一区二区 | 午夜精品免费视频 | 亚洲视频456| 97黄色片 | 在线免费播放av | aa片在线观看视频在线播放 | 美女福利在线观看 | 91丨九色| 日本无遮挡边做边爱边摸 | 在线视频97 | wwwxx在线观看 | 国产永久免费视频 | 五月婷婷丁香综合 | 亚洲一区二区高清视频 | 少妇的性事hd | 美女扒开内裤让男人捅 | 国产精品夜夜爽张柏芝 | 青草视频在线免费观看 | 精品免费囯产一区二区三区 | 一级特黄aaa| 一个人看的www日本高清视频 | 女性向小h片资源在线观看 日本天天操 | 131mm少妇做爰视频 | 91偷拍网 | 色欧美片视频在线观看 | 亚洲精品日韩欧美 | 性感美女高潮 | 伊人77| 成人免费一区 | www.亚洲欧美 | 火影黄动漫免费网站 | 欧美色图3p | a级片网址 | 欧美性猛交ⅹxxx乱大交3 | 羞羞动漫在线观看 | 久久婷综合| 日韩成人午夜电影 | 美女被揉胸视频 | 国产懂色av | 蜜桃色999 | 欧美日韩免费高清一区色橹橹 | 国产日韩一区二区三免费高清 | 伊人涩涩 | 调教一区 | 美女乱淫 | 黄色网址在线免费播放 | 高清一级片 | 日本乱论视频 | 日本美女视频 | 日韩欧美久久精品 | 性网爆门事件集合av | 欧美不卡| 91操操| 韩日欧美| 亚洲v欧美 | 在线视频激情小说 | 天堂在线成人 | 日韩在线电影一区二区 | 国产处女| 91一区二区在线观看 | 免费不卡的av | 搡老岳熟女国产熟妇 | 久草最新视频 | 森泽佳奈在线播放 | 打屁股av| 国产69久久精品成人看 | 一卡二卡精品 | 精品一区二区三区四区 | 欧美日韩在线观看一区 | a久久久久久 | 日韩一区二区三区在线免费观看 | 成人免费黄色大片 | 美国av毛片| 毛片免费一区二区三区 | 国产视频在线免费观看 | 尤物网站在线播放 | 老司机深夜福利视频 | 国产视频在线免费观看 | 麻豆视频在线观看免费网站 |