2016-07-25 39 views
1

SnappyData v.0-5表格不JDBC顯示或脈衝

我遇到的問題是,我的JDBC連接的表的元數據和脈衝Web應用程序沒有看到我創建的表下面。

我使用shell和csv文件在SnappyData中創建表。

數據是在這裏(roads.csv):

"roadId","name" 
"1","Road 1" 
"2","Road 2" 
"3","Road 3" 
"4","Road 4" 
"5","Road 5" 
"6","Road 6" 
"7","Road 7" 
"8","Road 8" 
"9","Road 9" 
"10","Road 10" 

============================== ============================

snappy> CREATE TABLE STAGING_ROADS 
(road_id string, name string) 
USING com.databricks.spark.csv 
OPTIONS(path '/home/ubuntu/data/example/roads.csv', header 'true'); 


snappy> select * from STAGING_ROADS 

Returns 10 rows. 

我有一個SnappyData JDBC連接(DBVisualizer中& SquirrelSQL顯示相同)。 我無法從元數據中看到「表格」列表中的表格。 但是,如果我做了「從STAGING_ROADS中選擇*」。

返回10行與CLOBs,其中btw完全無法使用。

road_id |  name 
===================== 
CLOB  CLOB 
CLOB  CLOB 
CLOB  CLOB 
CLOB  CLOB 
CLOB  CLOB 
CLOB  CLOB 
CLOB  CLOB 
CLOB  CLOB 
CLOB  CLOB 
CLOB  CLOB 

二,脈搏Web App不註冊,我創建表時,我從活潑>殼做到了。但是,如果我從JDBC客戶端運行CREATE TABLE命令,它顯示在那裏沒有問題。

我做錯了什麼嗎?我如何獲得有關我在snappy> shell中創建的表的元數據,以便在JDBC和Pulse中顯示?

回答

1

沒想到使用SQL創建表,其中Spark.csv是數據源已經過測試。這是一個相關的JIRA - https://jira.snappydata.io/browse/SNAP-416

我們一直在建議人們使用Spark作業來並行加載數據。你也可以使用spark-shell來做到這一點。

 stagingRoadsDataFrame = snappyContext.read 
     .format("com.databricks.spark.csv") 
     .option("header", "true") // Use first line of all files as header 
     .option("inferSchema", "true") // Automatically infer data types 
     .load(someFile) 
// Save Dataframe as a Row table 
     stagingRoadsDatFrame.write.format("row").options(props).saveAsTable("staging_roads") 

這就是說,你可以嘗試(也許這可能工作) -

CREATE TABLE STAGING_ROADS (road_id varchar(100), name varchar(500)) 

注意,沒有「串」在SQL數據類型。默認情況下,在不知道最大長度的情況下,我們將其轉換爲CLOB。我們也在努力解決這個問題。

+0

這仍然顯示road_id的CLOB。 CREATE TABLE STAGING_ROAD (road_id varchar(64),name string) USING com.databricks.spark.csv OPTIONS(path'/home/ubuntu/data/example/roads.csv',header'true'); – Jason

2

我遇到的問題是我的JDBC連接的表元數據和Pulse Web App沒有看到我在下面創建的表。

這是一個已知的問題(https://jira.snappydata.io/browse/SNAP-303)。 JDBC元數據僅顯示存儲中的項目而不顯示外部表。在跟蹤元數據問題的同時,Pulse webapp將無法查看此類外部表,因爲它旨在監控snappydata商店。

請注意:在「CREATE TABLE」 DDL已更改爲「創建外部表」(https://github.com/SnappyDataInc/snappydata/pull/311)的商店讓事情更清晰的外部來源。

如何獲取有關在snappy> shell中創建的表的元數據,以便在JDBC和Pulse中顯示?

它將顯示內部SnappyData源:列和行表。對於USING中的其他提供者,他們不會像上面提到的那樣出現。

CSV表通常用於將數據加載到列表或行表中,如@jagsr提供的示例中所示。