2016-07-26 11 views
1

SnappyData v.0.5Schema nicht in Abfragen

Ich kann nicht scheinen, Row-Tabellen für ein bestimmtes Schema zu erstellen. Dies ist in einer schemabasierten Multi-Tenant-Anwendung wichtig, in der jeder Mandanten sein eigenes Schema hat.

Wenn ich jedoch meine Tabellen mithilfe von RowStore DDL erstellen, sind sie abfragbar alle Schemas für die DB.

Hier waren meine Schritte. Habe ich etwas falsch gemacht?

[email protected]:~$ snappy-shell 
SnappyData RowStore 1.5.0 GA 
snappy> connect client '172.x.x.x:1527'; 
Using CONNECTION0 
**snappy> set schema A;** 
0 rows inserted/updated/deleted 
snappy> run '/home/ubuntu/data/ddl/create_row_tables.sql'; 
snappy> DROP TABLE IF EXISTS road; 
0 rows inserted/updated/deleted 
snappy> 
CREATE TABLE road 
(
    road_id VARCHAR(64) NOT NULL, 
    name VARCHAR(64) NOT NULL, 
    CONSTRAINT road_PK PRIMARY KEY (road_id) 
) 
PERSISTENT; 
0 rows inserted/updated/deleted 

In DbVisualizer JDBC verwenden, ich habe die folgenden Schemata: A, APP, NULLID, Q, SQLQ usw. Wenn ich DbVisualizer ändern zu einem bestimmten Schema zu zeigen und laufen:

wählen * von der Straße;

Die Abfrage gibt auf ALLEN SCHEMAS null Zeilen zurück. Ich würde eine "Tabelle nicht gefunden: ROAD" erwarten; Fehler in allen Schemata außer "A". Was muss ich tun, um die Tabellen nur für ein bestimmtes Schema zu erstellen?

Antwort

1

Die Schemaintegration des Speichers mit Spark-Metadaten hatte einige Probleme, die in den letzten Builds behoben wurden. Ab der freigegebenen Version, müssen Sie voll qualifizierte Namen verwenden wie:

create table a.road ... 
select * from a.road 

Btw, wenn Sie den Cluster als reiner rowstore (mit „snappy-start-all.sh rowstore“) laufen, dann Schema sollte wie erwartet funktionieren.