@Override public DataContext getDataContext() { return _delegate.getDataContext(); }
@Override public SchemaNavigator getSchemaNavigator() { return _delegate.getSchemaNavigator(); }
public Column getColumn(final DatastoreConnection datastoreConnection) { try { final Column column = datastoreConnection.getDataContext().getColumnByQualifiedLabel(_qualifiedColumnName); if (column == null) { throw new NoSuchColumnException(_qualifiedColumnName); } return column; } catch (final RuntimeException e) { datastoreConnection.close(); throw e; } }
public AnalysisJobBuilder setDatastoreConnection(final DatastoreConnection datastoreConnection) { if (_datastoreConnection != null) { _datastoreConnection.close(); } _datastoreConnection = datastoreConnection; if (datastoreConnection != null && _datastore == null) { final Datastore datastore = datastoreConnection.getDatastore(); if (datastore != null) { setDatastore(datastore); } } return this; }
private void updateTree() { final DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(); final DefaultMutableTreeNode datastoreNode = new DefaultMutableTreeNode(); rootNode.add(datastoreNode); datastoreNode.setUserObject(_datastoreConnection.getDatastore()); final SchemaNavigator schemaNavigator = _datastoreConnection.getSchemaNavigator(); schemaNavigator.refreshSchemas(); final Schema[] schemas = schemaNavigator.getSchemas(); // make sure that information schemas are arranged at the top Arrays.sort(schemas, new SchemaComparator()); for (final Schema schema : schemas) { final DefaultMutableTreeNode schemaNode = new DefaultMutableTreeNode(schema); schemaNode.add(new DefaultMutableTreeNode(LOADING_TABLES_STRING)); datastoreNode.add(schemaNode); } if (_includeLibraryNode) { final DefaultMutableTreeNode libraryRoot = new DefaultMutableTreeNode(LIBRARY_STRING); createLibrary(libraryRoot); rootNode.add(libraryRoot); } final DefaultTreeModel treeModel = new DefaultTreeModel(rootNode); setModel(treeModel); }
public SimpleDictionary loadIntoMemory(final DatastoreConnection datastoreConnection) { final DataContext dataContext = datastoreConnection.getDataContext(); final Column column = getColumn(datastoreConnection); final Query query = dataContext.query().from(column.getTable()).select(column).toQuery(); if (datastoreConnection.getDatastore().getPerformanceCharacteristics().isQueryOptimizationPreferred()) { query.getSelectClause().setDistinct(true); } final Set<String> values = new HashSet<>(); try (DataSet dataSet = dataContext.executeQuery(query)) { while (dataSet.next()) { final Object value = dataSet.getRow().getValue(0); if (value != null) { values.add(value.toString()); } } } return new SimpleDictionary(getName(), values); }
@Override public void close() { if (_datastoreConnection != null) { _datastoreConnection.close(); } }
@Override public Datastore getDatastore() { return _delegate.getDatastore(); }
@Override public void close() { _datastoreConnection.close(); }
private void openConnection(final Datastore datastore) { if (_connection != null && _connection.getDatastore() == datastore) { return; } if (_connection != null) { _connection.close(); _connection = null; } if (datastore != null) { try { _connection = datastore.openConnection(); } catch (final Exception e) { logger.warn("Could not open connection to datastore: {}", datastore); } } }
@Override public void configureForFilterOutcome(final AnalysisJobBuilder ajb, final FilterDescriptor<?, ?> descriptor, final String categoryName) { final String dsName = ajb.getDatastoreConnection().getDatastore().getName(); tableName = "output-" + dsName + "-" + descriptor.getDisplayName() + "-" + categoryName; }
@Override protected UsageAwareDatastoreConnection<DataContext> createDatastoreConnection() { final List<DataContext> dataContexts = new ArrayList<>(_datastores.size()); final List<Closeable> closeables = new ArrayList<>(_datastores.size()); for (final Datastore datastore : _datastores) { final DatastoreConnection con = datastore.openConnection(); final DataContext dc = con.getDataContext(); closeables.add(con); dataContexts.add(dc); } final Closeable[] closeablesArray = closeables.toArray(new Closeable[closeables.size()]); return new DatastoreConnectionImpl<>(DataContextFactory.createCompositeDataContext(dataContexts), this, closeablesArray); }
private void printSchemas(final DataCleanerConfiguration configuration) { final String datastoreName = _arguments.getDatastoreName(); if (datastoreName == null) { System.err.println("You need to specify the datastore name!"); } else { final Datastore ds = configuration.getDatastoreCatalog().getDatastore(datastoreName); if (ds == null) { System.err.println("No such datastore: " + datastoreName); } else { final DatastoreConnection con = ds.openConnection(); final List<String> schemaNames = con.getDataContext().getSchemaNames(); if (schemaNames == null || schemaNames.isEmpty()) { write("No schemas in datastore!"); } else { write("Schemas:"); write("--------"); for (final String schemaName : schemaNames) { write(schemaName); } } con.close(); } } }
public AnalysisJobBuilder addSourceColumns(final String... columnNames) { if (_datastoreConnection == null) { throw new IllegalStateException( "Cannot add source columns by name when no Datastore or DatastoreConnection has been set"); } final SchemaNavigator schemaNavigator = _datastoreConnection.getSchemaNavigator(); final Column[] columns = new Column[columnNames.length]; for (int i = 0; i < columns.length; i++) { final String columnName = columnNames[i]; final Column column = schemaNavigator.convertToColumn(columnName); if (column == null) { throw new IllegalArgumentException("No such column: " + columnName); } columns[i] = column; } return addSourceColumns(columns); }
@Override public void close() { _datastoreConnection.close(); }
@Override public void configureForTransformedData(final AnalysisJobBuilder ajb, final TransformerDescriptor<?> descriptor) { final String dsName = ajb.getDatastoreConnection().getDatastore().getName(); tableName = "output-" + dsName + "-" + descriptor.getDisplayName(); }
public Column[] getSynonymColumns(final DatastoreConnection datastoreConnection) { final Column[] columns = new Column[_synonymColumnPaths.length]; for (int i = 0; i < columns.length; i++) { final String columnPath = _synonymColumnPaths[i]; columns[i] = datastoreConnection.getDataContext().getColumnByQualifiedLabel(columnPath); if (columns[i] == null) { throw new NoSuchColumnException(columnPath); } } return columns; }
} else { final DatastoreConnection con = ds.openConnection(); final DataContext dc = con.getDataContext(); final Schema schema; if (schemaName == null) { con.close();
@Override public Table getPreviewTable(final Datastore datastore) { try (DatastoreConnection con = datastore.openConnection()) { return con.getSchemaNavigator().convertToTable(_schemaName, _tableName); } }
@Override public void close() { final boolean changed = _closed.compareAndSet(false, true); if (changed) { _delegate.close(); } else { logger.warn("Connection is already closed, but close() was invoked!", new Throwable()); } }