Search in sources :

Example 11 with DatasourceAdapter

use of org.apache.asterix.metadata.entities.DatasourceAdapter in project asterixdb by apache.

the class MetadataNode method getAdapter.

@Override
public DatasourceAdapter getAdapter(JobId jobId, String dataverseName, String adapterName) throws MetadataException, RemoteException {
    try {
        ITupleReference searchKey = createTuple(dataverseName, adapterName);
        DatasourceAdapterTupleTranslator tupleReaderWriter = tupleTranslatorProvider.getAdapterTupleTranslator(false);
        List<DatasourceAdapter> results = new ArrayList<>();
        IValueExtractor<DatasourceAdapter> valueExtractor = new MetadataEntityValueExtractor<>(tupleReaderWriter);
        searchIndex(jobId, MetadataPrimaryIndexes.DATASOURCE_ADAPTER_DATASET, searchKey, valueExtractor, results);
        if (results.isEmpty()) {
            return null;
        }
        return results.get(0);
    } catch (HyracksDataException e) {
        throw new MetadataException(e);
    }
}
Also used : MetadataEntityValueExtractor(org.apache.asterix.metadata.valueextractors.MetadataEntityValueExtractor) DatasourceAdapter(org.apache.asterix.metadata.entities.DatasourceAdapter) ITupleReference(org.apache.hyracks.dataflow.common.data.accessors.ITupleReference) ArrayList(java.util.ArrayList) DatasourceAdapterTupleTranslator(org.apache.asterix.metadata.entitytupletranslators.DatasourceAdapterTupleTranslator) HyracksDataException(org.apache.hyracks.api.exceptions.HyracksDataException)

Example 12 with DatasourceAdapter

use of org.apache.asterix.metadata.entities.DatasourceAdapter in project asterixdb by apache.

the class MetadataTransactionContext method dropAdapter.

public void dropAdapter(String dataverseName, String adapterName) {
    AdapterIdentifier adapterIdentifier = new AdapterIdentifier(dataverseName, adapterName);
    DatasourceAdapter adapter = new DatasourceAdapter(adapterIdentifier, null, null);
    droppedCache.addAdapterIfNotExists(adapter);
    logAndApply(new MetadataLogicalOperation(adapter, false));
}
Also used : DatasourceAdapter(org.apache.asterix.metadata.entities.DatasourceAdapter) AdapterIdentifier(org.apache.asterix.external.dataset.adapter.AdapterIdentifier)

Example 13 with DatasourceAdapter

use of org.apache.asterix.metadata.entities.DatasourceAdapter in project asterixdb by apache.

the class DatasourceAdapterTupleTranslator method createAdapterFromARecord.

private DatasourceAdapter createAdapterFromARecord(ARecord adapterRecord) {
    String dataverseName = ((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_DATAVERSENAME_FIELD_INDEX)).getStringValue();
    String adapterName = ((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_NAME_FIELD_INDEX)).getStringValue();
    String classname = ((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_CLASSNAME_FIELD_INDEX)).getStringValue();
    IDataSourceAdapter.AdapterType adapterType = IDataSourceAdapter.AdapterType.valueOf(((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_TYPE_FIELD_INDEX)).getStringValue());
    return new DatasourceAdapter(new AdapterIdentifier(dataverseName, adapterName), classname, adapterType);
}
Also used : IDataSourceAdapter(org.apache.asterix.external.api.IDataSourceAdapter) DatasourceAdapter(org.apache.asterix.metadata.entities.DatasourceAdapter) AdapterIdentifier(org.apache.asterix.external.dataset.adapter.AdapterIdentifier) AString(org.apache.asterix.om.base.AString) AString(org.apache.asterix.om.base.AString)

Example 14 with DatasourceAdapter

use of org.apache.asterix.metadata.entities.DatasourceAdapter in project asterixdb by apache.

the class MetadataProvider method getAdapter.

public DatasourceAdapter getAdapter(MetadataTransactionContext mdTxnCtx, String dataverseName, String adapterName) throws MetadataException {
    DatasourceAdapter adapter;
    // search in default namespace (built-in adapter)
    adapter = MetadataManager.INSTANCE.getAdapter(mdTxnCtx, MetadataConstants.METADATA_DATAVERSE_NAME, adapterName);
    // search in dataverse (user-defined adapter)
    if (adapter == null) {
        adapter = MetadataManager.INSTANCE.getAdapter(mdTxnCtx, dataverseName, adapterName);
    }
    return adapter;
}
Also used : DatasourceAdapter(org.apache.asterix.metadata.entities.DatasourceAdapter)

Aggregations

DatasourceAdapter (org.apache.asterix.metadata.entities.DatasourceAdapter)14 ACIDException (org.apache.asterix.common.exceptions.ACIDException)6 RemoteException (java.rmi.RemoteException)4 AsterixException (org.apache.asterix.common.exceptions.AsterixException)4 HyracksDataException (org.apache.hyracks.api.exceptions.HyracksDataException)4 ITupleReference (org.apache.hyracks.dataflow.common.data.accessors.ITupleReference)4 ArrayList (java.util.ArrayList)3 AdapterIdentifier (org.apache.asterix.external.dataset.adapter.AdapterIdentifier)3 Function (org.apache.asterix.metadata.entities.Function)3 IOException (java.io.IOException)2 CompilationException (org.apache.asterix.common.exceptions.CompilationException)2 FunctionSignature (org.apache.asterix.common.functions.FunctionSignature)2 IAdapterFactory (org.apache.asterix.external.api.IAdapterFactory)2 IDataSourceAdapter (org.apache.asterix.external.api.IDataSourceAdapter)2 AdapterType (org.apache.asterix.external.api.IDataSourceAdapter.AdapterType)2 ExternalLibrary (org.apache.asterix.external.library.ExternalLibrary)2 LibraryFunction (org.apache.asterix.external.library.LibraryFunction)2 MetadataException (org.apache.asterix.metadata.MetadataException)2 MetadataTransactionContext (org.apache.asterix.metadata.MetadataTransactionContext)2 Dataverse (org.apache.asterix.metadata.entities.Dataverse)2