use of com.qlangtech.tis.annotation.Public in project plugins by qlangtech.
the class DataXElasticsearchWriter method initialIndex.
/**
* 当增量开始执行前,先需要初始化一下索引实例
*
* @param esSchema
*/
public void initialIndex(ESTableAlias esSchema) {
if (esSchema == null) {
throw new IllegalArgumentException("param esSchema can not be null");
}
IHttpToken token = this.getToken();
/**
******************************************************
* 初始化索引Schema
******************************************************
*/
JSONArray schemaCols = esSchema.getSchemaCols();
ESClient esClient = new ESClient(ESInitialization.create(token.getEndpoint(), token.getAccessKeyId(), token.getAccessKeySecret(), false, 300000, false, false));
try {
esClient.createIndex(this.getIndexName(), this.type, esClient.genMappings(schemaCols, this.type, (columnList) -> {
}), this.settings, false);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
try {
esClient.closeJestClient();
} catch (Throwable e) {
}
}
}
use of com.qlangtech.tis.annotation.Public in project plugins by qlangtech.
the class TiKVDataSourceFactory method getDataDumpers.
public DataDumpers getDataDumpers(TISTable table, Optional<Long> regionId) {
// target cols
final List<ColumnMetaData> reflectCols = table.getReflectCols();
if (CollectionUtils.isEmpty(reflectCols)) {
throw new IllegalStateException("param reflectCols can not be null");
}
final AtomicReference<TiTableInfoWrapper> tabRef = new AtomicReference<>();
final List<TiPartition> parts = this.openTiDB((session, c, db) -> {
TiTableInfo tiTable = c.getTable(db, table.getTableName());
Objects.requireNonNull(tiTable, "table:" + table.getTableName() + " can not find relevant table in TiDB");
tabRef.set(new TiTableInfoWrapper(tiTable));
TiDAGRequest dagRequest = getTiDAGRequest(reflectCols, session, tiTable);
List<Long> prunedPhysicalIds = dagRequest.getPrunedPhysicalIds();
return prunedPhysicalIds.stream().flatMap((prunedPhysicalId) -> createPartitions(prunedPhysicalId, session, dagRequest.copyReqWithPhysicalId(prunedPhysicalId), regionId).stream()).collect(Collectors.toList());
});
int[] index = new int[1];
final int splitCount = parts.size();
Objects.requireNonNull(tabRef.get(), "instacne of TiTableInfo can not be null");
Iterator<IDataSourceDumper> dumpers = new Iterator<IDataSourceDumper>() {
@Override
public boolean hasNext() {
return index[0] < splitCount;
}
@Override
public IDataSourceDumper next() {
return new TiKVDataSourceDumper(TiKVDataSourceFactory.this, parts.get(index[0]++), tabRef.get(), reflectCols);
}
};
return new DataDumpers(splitCount, dumpers);
}
Aggregations