Search in sources :

Example 16 with ExternalFile

use of org.apache.asterix.external.indexing.ExternalFile in project asterixdb by apache.

the class SecondaryIndexOperationsHelper method createExternalIndexBulkModifyOp.

protected ExternalIndexBulkModifyOperatorDescriptor createExternalIndexBulkModifyOp(JobSpecification spec, int[] fieldPermutation, IIndexDataflowHelperFactory dataflowHelperFactory, float fillFactor) throws AlgebricksException {
    // create a list of file ids
    int numOfDeletedFiles = 0;
    for (ExternalFile file : externalFiles) {
        if (file.getPendingOp() == ExternalFilePendingOp.DROP_OP) {
            numOfDeletedFiles++;
        }
    }
    int[] deletedFiles = new int[numOfDeletedFiles];
    int i = 0;
    for (ExternalFile file : externalFiles) {
        if (file.getPendingOp() == ExternalFilePendingOp.DROP_OP) {
            deletedFiles[i] = file.getFileNumber();
        }
    }
    ExternalIndexBulkModifyOperatorDescriptor treeIndexBulkLoadOp = new ExternalIndexBulkModifyOperatorDescriptor(spec, dataflowHelperFactory, deletedFiles, fieldPermutation, fillFactor, false, numElementsHint);
    AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, treeIndexBulkLoadOp, secondaryPartitionConstraint);
    return treeIndexBulkLoadOp;
}
Also used : ExternalIndexBulkModifyOperatorDescriptor(org.apache.asterix.external.operators.ExternalIndexBulkModifyOperatorDescriptor) AlgebricksPartitionConstraint(org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint) ExternalFile(org.apache.asterix.external.indexing.ExternalFile)

Example 17 with ExternalFile

use of org.apache.asterix.external.indexing.ExternalFile in project asterixdb by apache.

the class ExternalIndexingOperations method buildFilesIndexUpdateOp.

public static JobSpecification buildFilesIndexUpdateOp(Dataset ds, List<ExternalFile> metadataFiles, List<ExternalFile> addedFiles, List<ExternalFile> appendedFiles, MetadataProvider metadataProvider) throws AlgebricksException {
    ArrayList<ExternalFile> files = new ArrayList<>();
    for (ExternalFile file : metadataFiles) {
        if (file.getPendingOp() == ExternalFilePendingOp.DROP_OP) {
            files.add(file);
        } else if (file.getPendingOp() == ExternalFilePendingOp.APPEND_OP) {
            for (ExternalFile appendedFile : appendedFiles) {
                if (appendedFile.getFileName().equals(file.getFileName())) {
                    files.add(new ExternalFile(file.getDataverseName(), file.getDatasetName(), file.getFileNumber(), file.getFileName(), file.getLastModefiedTime(), appendedFile.getSize(), ExternalFilePendingOp.NO_OP));
                }
            }
        }
    }
    for (ExternalFile file : addedFiles) {
        files.add(file);
    }
    Collections.sort(files);
    return buildFilesIndexUpdateJobSpec(ds, files, metadataProvider);
}
Also used : ArrayList(java.util.ArrayList) ExternalFile(org.apache.asterix.external.indexing.ExternalFile)

Aggregations

ExternalFile (org.apache.asterix.external.indexing.ExternalFile)17 ArrayList (java.util.ArrayList)7 HyracksDataException (org.apache.hyracks.api.exceptions.HyracksDataException)7 Index (org.apache.asterix.metadata.entities.Index)5 IOException (java.io.IOException)4 Date (java.util.Date)4 Dataset (org.apache.asterix.metadata.entities.Dataset)4 ExternalDatasetDetails (org.apache.asterix.metadata.entities.ExternalDatasetDetails)4 AlgebricksPartitionConstraint (org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint)4 AlgebricksException (org.apache.hyracks.algebricks.common.exceptions.AlgebricksException)4 ACIDException (org.apache.asterix.common.exceptions.ACIDException)3 AsterixException (org.apache.asterix.common.exceptions.AsterixException)3 CompilationException (org.apache.asterix.common.exceptions.CompilationException)3 MetadataException (org.apache.asterix.metadata.MetadataException)3 FileStatus (org.apache.hadoop.fs.FileStatus)3 Path (org.apache.hadoop.fs.Path)3 JobSpecification (org.apache.hyracks.api.job.JobSpecification)3 IIndex (org.apache.hyracks.storage.common.IIndex)3 RemoteException (java.rmi.RemoteException)2 List (java.util.List)2