Package org.pentaho.di.partition
Class PartitionSchema
- java.lang.Object
-
- org.pentaho.di.core.changed.ChangedFlag
-
- org.pentaho.di.partition.PartitionSchema
-
- All Implemented Interfaces:
Cloneable,ChangedFlagInterface,org.pentaho.di.core.xml.XMLInterface,org.pentaho.di.repository.RepositoryElementInterface,org.pentaho.di.repository.RepositoryObjectInterface,ResourceHolderInterface,org.pentaho.di.shared.SharedObjectInterface
public class PartitionSchema extends ChangedFlag implements Cloneable, org.pentaho.di.shared.SharedObjectInterface, ResourceHolderInterface, org.pentaho.di.repository.RepositoryElementInterface, org.pentaho.di.core.xml.XMLInterface
A partition schema allow you to partition a step according into a number of partitions that run independendly. It allows us to "map"- Author:
- Matt
-
-
Field Summary
Fields Modifier and Type Field Description static org.pentaho.di.repository.RepositoryObjectTypeREPOSITORY_ELEMENT_TYPEstatic StringXML_TAG
-
Constructor Summary
Constructors Constructor Description PartitionSchema()PartitionSchema(String name, List<String> partitionIDs)PartitionSchema(Node partitionSchemaNode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Objectclone()booleanequals(Object obj)voidexpandPartitionsDynamically(int nrSlaves, org.pentaho.di.core.variables.VariableSpace space)DategetChangedDate()StringgetDescription()StringgetHolderType()Gets the high-level type of resource holder.StringgetName()StringgetNumberOfPartitionsPerSlave()org.pentaho.di.repository.ObjectIdgetObjectId()org.pentaho.di.repository.ObjectRevisiongetObjectRevision()List<String>getPartitionIDs()org.pentaho.di.repository.RepositoryDirectoryInterfacegetRepositoryDirectory()Not supported for Partition schema, return the root.org.pentaho.di.repository.RepositoryObjectTypegetRepositoryElementType()StringgetTypeId()StringgetXML()inthashCode()booleanisDynamicallyDefined()booleanisShared()voidreplaceMeta(PartitionSchema partitionSchema)voidretainPartitionsForSlaveServer(int slaveCount, int slaveNumber)Slaves don't need ALL the partitions, they just need a few.
So we should only retain those partitions that are of interest to the slave server.
Divide the number of partitions (6) through the number of slaves (2)
That gives you 0, 1, 2, 3, 4, 5
Slave 0 : 0, 2, 4
Slave 1 : 1, 3, 5
--> slaveNumber == partitionNr % slaveCountvoidsetChangedDate(Date changedDate)voidsetDescription(String description)voidsetDynamicallyDefined(boolean dynamicallyDefined)voidsetName(String name)voidsetNumberOfPartitionsPerSlave(String numberOfPartitionsPerSlave)voidsetObjectId(org.pentaho.di.repository.ObjectId id)voidsetObjectRevision(org.pentaho.di.repository.ObjectRevision objectRevision)voidsetPartitionIDs(List<String> partitionIDs)voidsetRepositoryDirectory(org.pentaho.di.repository.RepositoryDirectoryInterface repositoryDirectory)voidsetShared(boolean shared)StringtoString()-
Methods inherited from class org.pentaho.di.core.changed.ChangedFlag
addObserver, clearChanged, deleteObserver, hasChanged, notifyObservers, setChanged, setChanged
-
-
-
-
Field Detail
-
XML_TAG
public static final String XML_TAG
- See Also:
- Constant Field Values
-
REPOSITORY_ELEMENT_TYPE
public static final org.pentaho.di.repository.RepositoryObjectType REPOSITORY_ELEMENT_TYPE
-
-
Method Detail
-
replaceMeta
public void replaceMeta(PartitionSchema partitionSchema)
-
getName
public String getName()
- Specified by:
getNamein interfaceorg.pentaho.di.repository.RepositoryElementInterface- Specified by:
getNamein interfaceorg.pentaho.di.repository.RepositoryObjectInterface- Specified by:
getNamein interfaceResourceHolderInterface- Specified by:
getNamein interfaceorg.pentaho.di.shared.SharedObjectInterface- Returns:
- the name
-
setName
public void setName(String name)
- Specified by:
setNamein interfaceorg.pentaho.di.repository.RepositoryElementInterface- Parameters:
name- the name to set
-
setPartitionIDs
public void setPartitionIDs(List<String> partitionIDs)
- Parameters:
partitionIDs- the partitionIDs to set
-
getXML
public String getXML()
- Specified by:
getXMLin interfaceorg.pentaho.di.shared.SharedObjectInterface- Specified by:
getXMLin interfaceorg.pentaho.di.core.xml.XMLInterface
-
isShared
public boolean isShared()
- Specified by:
isSharedin interfaceorg.pentaho.di.shared.SharedObjectInterface- Returns:
- the shared
-
setShared
public void setShared(boolean shared)
- Specified by:
setSharedin interfaceorg.pentaho.di.shared.SharedObjectInterface- Parameters:
shared- the shared to set
-
getObjectId
public org.pentaho.di.repository.ObjectId getObjectId()
- Specified by:
getObjectIdin interfaceorg.pentaho.di.repository.RepositoryElementInterface- Specified by:
getObjectIdin interfaceorg.pentaho.di.repository.RepositoryObjectInterface- Specified by:
getObjectIdin interfaceResourceHolderInterface- Returns:
- the id
-
getDescription
public String getDescription()
- Specified by:
getDescriptionin interfaceorg.pentaho.di.repository.RepositoryElementInterface- Specified by:
getDescriptionin interfaceResourceHolderInterface- Returns:
- The description of the holder of the resource
-
getHolderType
public String getHolderType()
Description copied from interface:ResourceHolderInterfaceGets the high-level type of resource holder.- Specified by:
getHolderTypein interfaceResourceHolderInterface- Returns:
- JOBENTRY, STEP, etc.
-
getTypeId
public String getTypeId()
- Specified by:
getTypeIdin interfaceResourceHolderInterface- Returns:
- The Type ID of the resource holder. The Type ID is the system-defined type identifier (like TRANS or SORT).
-
isDynamicallyDefined
public boolean isDynamicallyDefined()
- Returns:
- the dynamicallyDefined
-
setDynamicallyDefined
public void setDynamicallyDefined(boolean dynamicallyDefined)
- Parameters:
dynamicallyDefined- the dynamicallyDefined to set
-
getNumberOfPartitionsPerSlave
public String getNumberOfPartitionsPerSlave()
- Returns:
- the numberOfStepCopiesPerSlave
-
setNumberOfPartitionsPerSlave
public void setNumberOfPartitionsPerSlave(String numberOfPartitionsPerSlave)
- Parameters:
numberOfPartitionsPerSlave- the number of partitions per slave to set...
-
expandPartitionsDynamically
public void expandPartitionsDynamically(int nrSlaves, org.pentaho.di.core.variables.VariableSpace space)
-
retainPartitionsForSlaveServer
public void retainPartitionsForSlaveServer(int slaveCount, int slaveNumber)Slaves don't need ALL the partitions, they just need a few.
So we should only retain those partitions that are of interest to the slave server.
Divide the number of partitions (6) through the number of slaves (2)
That gives you 0, 1, 2, 3, 4, 5
Slave 0 : 0, 2, 4
Slave 1 : 1, 3, 5
--> slaveNumber == partitionNr % slaveCount- Parameters:
slaveCount-slaveNumber-
-
getRepositoryDirectory
public org.pentaho.di.repository.RepositoryDirectoryInterface getRepositoryDirectory()
Not supported for Partition schema, return the root.- Specified by:
getRepositoryDirectoryin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
setRepositoryDirectory
public void setRepositoryDirectory(org.pentaho.di.repository.RepositoryDirectoryInterface repositoryDirectory)
- Specified by:
setRepositoryDirectoryin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
getRepositoryElementType
public org.pentaho.di.repository.RepositoryObjectType getRepositoryElementType()
- Specified by:
getRepositoryElementTypein interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
setObjectId
public void setObjectId(org.pentaho.di.repository.ObjectId id)
- Specified by:
setObjectIdin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
getObjectRevision
public org.pentaho.di.repository.ObjectRevision getObjectRevision()
- Specified by:
getObjectRevisionin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
setObjectRevision
public void setObjectRevision(org.pentaho.di.repository.ObjectRevision objectRevision)
- Specified by:
setObjectRevisionin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
setDescription
public void setDescription(String description)
- Specified by:
setDescriptionin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
getChangedDate
public Date getChangedDate()
- Specified by:
getChangedDatein interfaceorg.pentaho.di.shared.SharedObjectInterface- Returns:
- the changedDate
-
setChangedDate
public void setChangedDate(Date changedDate)
- Parameters:
changedDate- the changedDate to set
-
-