java接続kylinデータベーステーブル
15454 ワード
一、Klinデータベース表を訪問します。
アクセスデータテーブルには2つの方法があります。一つはKlin標準JDBCによって駆動されるもので、一つはKlin APIを通じて行われるものです。それぞれ紹介します。
A,標準JDBC駆動方式
まずプロジェクトにKlin-jdbc-2.10.jarを導入する必要があります。
jdbcドライバを使用して結果セットの例コードを返します。
import java.sql.Connection;
import java.sql.PreparedSttement;
import java.sql.Result Set;
import java.sql.SQLException;
import java.util.Propties;
//実用化駆動類
Driver driver=(Driver)Class.forName("org.apphe.kylin.jdbc.Driver").newInstance();
Propties info=new Properties()
info.put(「user」、「ADMIN」);ログインユーザ名を認証する
info.put(「password」「KYLINE」);認証ログインパスワード
Connection conn=driver.co nnect("jdbc:kylin://192.168.46.15:7070/Test_P「info」
PreparedSttement state=conn.prepareStatiment("select*from LOGDAY where AREACODE='440488')
//state.set Int(1,440488)このような方法でパラメータを割り当てないでください。
文字列を使ってSQL文をつづり合わせたほうがいいです。
//state.setNString(1、「440488」)
ResultSet result Set=state.executeQuery()
while(result Set.next(){
System.out.println(result Set.get String(1));
System.out.println(result Set.get String(2));
System.out.printel(result Set.get String);
)
resultSet.close();
state.close();
B,APIインターフェースを使用してクエリーを実行する
実際には、JDBC方式の最下層もKlinのAPIクエリインターフェースを呼び出してデータを取得していますが、インターフェースは標準jdbcを通してパッケージ化されています。
インターフェース名:
POST/Klin/ap/query
インターフェースPostのjsonデータフォーマット:
{
「sql」:「select*from TESTuKYLINHuFACT」、--標準SQL文、必須
「offset」:0、--オプション、オフセット、改ページ用
「limit」:50000、--オプションで、最大レコードを返して、改ページに使います。
「accept Partial」:false、--部分結果を受け入れる、デフォルトfalse、オプション
プロジェクト名、デフォルトDEFAULT、オプション
)
戻り結果例
二、Rest APIでCubesを構築する。
インターフェースURL:PUT/Klin/ap/cubes/cubeName/{cubeName}/build
その中の経路変数はcubenameの名前です。
詳細は以下のリンクを参照してください。
http://kylin.apache.org/docs21/howto/howto_アメリカ.retapi.
既知の問題のまとめ
1,ログインに失敗しました
この問題は一般的に長時間ログインしていないか、またはKlinを操作していない場合に発生します。解決方法:Klinサービスを再開します。
2,cubeの構築に失敗しました。
mapreuceのログを見てください。エラーの原因を発見しました。多くのエラーはhbase-site.xmlとhive-xml.xmlの構成が不適切であるためです。
また、kafka clientバージョンが正しくないと、kafkaがデータの読み込みに失敗します。
Kylinタイミングタスク設定
[root@node3opt
[root@node3opt
[root@node3opt
[root@node3opt]((落vim/etc/crontab)
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTA=root
ホーム=/
〹For details see man 4 crontabs
皬Example of job definition:
ヽoo--------minute(0-59)
同前 .------------- hour(0-23)
同前 | .---------- day of month(1-31)
同前 | | .------- monoth(1-12)OR jan,feb,mar,appr…
同前 | | | .---- day of week(0-6)(Sundy=0 or 7)OR sun,mon,tue,wed,thu,fri,sat
同前 | | | |
湖南省にある地名 * * * * user-name command to be executed
30 00****root/opt/kylin/bin/kylin-BaseStt-task.sh
30 01**root/opt/kylin/bin/kylin-Coustomer-task.sh
30 02***root/opt/kylin/bin/kylin-logStt-task.sh
30****root/opt/kylin/bin/kylin-Violation Cad-task.sh
[root@node3opt
アクセスデータテーブルには2つの方法があります。一つはKlin標準JDBCによって駆動されるもので、一つはKlin APIを通じて行われるものです。それぞれ紹介します。
A,標準JDBC駆動方式
まずプロジェクトにKlin-jdbc-2.10.jarを導入する必要があります。
jdbcドライバを使用して結果セットの例コードを返します。
import java.sql.Connection;
import java.sql.PreparedSttement;
import java.sql.Result Set;
import java.sql.SQLException;
import java.util.Propties;
//実用化駆動類
Driver driver=(Driver)Class.forName("org.apphe.kylin.jdbc.Driver").newInstance();
Propties info=new Properties()
info.put(「user」、「ADMIN」);ログインユーザ名を認証する
info.put(「password」「KYLINE」);認証ログインパスワード
Connection conn=driver.co nnect("jdbc:kylin://192.168.46.15:7070/Test_P「info」
PreparedSttement state=conn.prepareStatiment("select*from LOGDAY where AREACODE='440488')
//state.set Int(1,440488)このような方法でパラメータを割り当てないでください。
文字列を使ってSQL文をつづり合わせたほうがいいです。
//state.setNString(1、「440488」)
ResultSet result Set=state.executeQuery()
while(result Set.next(){
System.out.println(result Set.get String(1));
System.out.println(result Set.get String(2));
System.out.printel(result Set.get String);
)
resultSet.close();
state.close();
B,APIインターフェースを使用してクエリーを実行する
実際には、JDBC方式の最下層もKlinのAPIクエリインターフェースを呼び出してデータを取得していますが、インターフェースは標準jdbcを通してパッケージ化されています。
インターフェース名:
POST/Klin/ap/query
インターフェースPostのjsonデータフォーマット:
{
「sql」:「select*from TESTuKYLINHuFACT」、--標準SQL文、必須
「offset」:0、--オプション、オフセット、改ページ用
「limit」:50000、--オプションで、最大レコードを返して、改ページに使います。
「accept Partial」:false、--部分結果を受け入れる、デフォルトfalse、オプション
プロジェクト名、デフォルトDEFAULT、オプション
)
戻り結果例
{
"columnMetas":[
{
"isNullable":1,
"displaySize":0,
"label":
"CAL_DT",
"name":
"CAL_DT",
"schemaName":null,
"catelogName":null,
"tableName":null,
"precision":0,
"scale":0,
"columnType":91,
"columnTypeName":
"DATE",
"readOnly":true,
"writable":false,
"caseSensitive":true,
"searchable":false,
"currency":false,
"signed":true,
"autoIncrement":false,
"definitelyWritable":false
},
{
"isNullable":1,
"displaySize":10,
"label":
"LEAF_CATEG_ID",
"name":
"LEAF_CATEG_ID",
"schemaName":null,
"catelogName":null,
"tableName":null,
"precision":10,
"scale":0,
"columnType":4,
"columnTypeName":
"INTEGER",
"readOnly":true,
"writable":false,
"caseSensitive":true,
"searchable":false,
"currency":false,
"signed":true,
"autoIncrement":false,
"definitelyWritable":false
}
]
,
"results"
:[
[
"2013-08-07"
,
"32996"
,
"15"
,
"15"
,
"Auction"
,
"10000000"
,
"49.048952730908745"
,
"49.048952730908745"
,
"49.048952730908745"
,
"1"
]
,
[
"2013-08-07"
,
"43398"
,
"0"
,
"14"
,
"ABIN"
,
"10000633"
,
"85.78317064220418"
,
"85.78317064220418"
,
"85.78317064220418"
,
"1"
]
]
,
"cube"
:
"test_kylin_cube_with_slr_desc",
"affectedRowCount"
:0,
"isException"
:false,
"exceptionMessage"
:null,
"duration"
:3451,
"partial"
:false
}
jdbc方式でデータを取得することを提案します。API方式を使うと、より複雑になります。二、Rest APIでCubesを構築する。
インターフェースURL:PUT/Klin/ap/cubes/cubeName/{cubeName}/build
その中の経路変数はcubenameの名前です。
{
"startTime":'1423526400000',--
"endTime":'1423526400', --
"buildType":"BUILD" --
(
‘BUILD’, ‘MERGE’, ‘REFRESH’)
}
curlコマンドを使用して構築例を実行します。curl -X PUT -H "Authorization: Basic ADMIN:KYLIN" -H 'Content-Type: application/json' -d '{"startTime":'1423526400000', "endTime":'1423526400', "buildType":"BUILD"}' http://:/kylin/api/cubes/{cubeName}/build
構築過程は基礎認証が必要です。ユーザ名パスワードで認証すればいいです。詳細は以下のリンクを参照してください。
http://kylin.apache.org/docs21/howto/howto_アメリカ.retapi.
既知の問題のまとめ
1,ログインに失敗しました
この問題は一般的に長時間ログインしていないか、またはKlinを操作していない場合に発生します。解決方法:Klinサービスを再開します。
2,cubeの構築に失敗しました。
mapreuceのログを見てください。エラーの原因を発見しました。多くのエラーはhbase-site.xmlとhive-xml.xmlの構成が不適切であるためです。
また、kafka clientバージョンが正しくないと、kafkaがデータの読み込みに失敗します。
[root@node3opt
[root@node3opt
[root@node3opt
[root@node3opt]((落vim/etc/crontab)
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTA=root
ホーム=/
〹For details see man 4 crontabs
皬Example of job definition:
ヽoo--------minute(0-59)
同前 .------------- hour(0-23)
同前 | .---------- day of month(1-31)
同前 | | .------- monoth(1-12)OR jan,feb,mar,appr…
同前 | | | .---- day of week(0-6)(Sundy=0 or 7)OR sun,mon,tue,wed,thu,fri,sat
同前 | | | |
湖南省にある地名 * * * * user-name command to be executed
30 00****root/opt/kylin/bin/kylin-BaseStt-task.sh
30 01**root/opt/kylin/bin/kylin-Coustomer-task.sh
30 02***root/opt/kylin/bin/kylin-logStt-task.sh
30****root/opt/kylin/bin/kylin-Violation Cad-task.sh
[root@node3opt