Search in sources :

Example 6 with Public

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) {
        }
    }
}
Also used : ISchemaField(com.qlangtech.tis.solrdao.ISchemaField) StringUtils(org.apache.commons.lang.StringUtils) ISchema(com.qlangtech.tis.solrdao.ISchema) ParamsConfig(com.qlangtech.tis.config.ParamsConfig) ISelectedTab(com.qlangtech.tis.plugin.ds.ISelectedTab) IDataxContext(com.qlangtech.tis.datax.IDataxContext) FormField(com.qlangtech.tis.plugin.annotation.FormField) Context(com.alibaba.citrus.turbine.Context) ESInitialization(com.alibaba.datax.plugin.writer.elasticsearchwriter.ESInitialization) IFieldErrorHandler(com.qlangtech.tis.runtime.module.misc.IFieldErrorHandler) JSONArray(com.alibaba.fastjson.JSONArray) SchemaMetaContent(com.qlangtech.tis.solrdao.SchemaMetaContent) VisualType(com.qlangtech.tis.runtime.module.misc.VisualType) ESTableAlias(com.qlangtech.tis.datax.impl.ESTableAlias) Map(java.util.Map) IDataxProcessor(com.qlangtech.tis.datax.IDataxProcessor) FormFieldType(com.qlangtech.tis.plugin.annotation.FormFieldType) Validator(com.qlangtech.tis.plugin.annotation.Validator) ESFieldType(com.alibaba.datax.plugin.writer.elasticsearchwriter.ESFieldType) TISExtension(com.qlangtech.tis.extension.TISExtension) ESClient(com.alibaba.datax.plugin.writer.elasticsearchwriter.ESClient) ImmutableMap(com.google.common.collect.ImmutableMap) IHttpToken(com.qlangtech.tis.config.aliyun.IHttpToken) DataxWriter(com.qlangtech.tis.datax.impl.DataxWriter) Maps(com.google.common.collect.Maps) Objects(java.util.Objects) Consumer(java.util.function.Consumer) DataXReaderColType(com.qlangtech.tis.plugin.ds.DataXReaderColType) ISearchEngineTypeTransfer(com.qlangtech.tis.datax.ISearchEngineTypeTransfer) JSON(com.alibaba.fastjson.JSON) IOUtils(com.qlangtech.tis.extension.impl.IOUtils) Public(com.qlangtech.tis.annotation.Public) Optional(java.util.Optional) JSONObject(com.alibaba.fastjson.JSONObject) StringEscapeUtils(org.apache.commons.lang.StringEscapeUtils) IHttpToken(com.qlangtech.tis.config.aliyun.IHttpToken) ESClient(com.alibaba.datax.plugin.writer.elasticsearchwriter.ESClient) JSONArray(com.alibaba.fastjson.JSONArray)

Example 7 with Public

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);
}
Also used : TiDAGRequest(com.pingcap.tikv.meta.TiDAGRequest) java.util(java.util) LoggerFactory(org.slf4j.LoggerFactory) FormField(com.qlangtech.tis.plugin.annotation.FormField) AtomicReference(java.util.concurrent.atomic.AtomicReference) Context(com.alibaba.citrus.turbine.Context) TiSession(com.pingcap.tikv.TiSession) CollectionUtils(org.apache.commons.collections.CollectionUtils) Lists(com.pingcap.com.google.common.collect.Lists) TiTableInfo(com.pingcap.tikv.meta.TiTableInfo) FormFieldType(com.qlangtech.tis.plugin.annotation.FormFieldType) Validator(com.qlangtech.tis.plugin.annotation.Validator) TISExtension(com.qlangtech.tis.extension.TISExtension) Logger(org.slf4j.Logger) TiDBInfo(com.pingcap.tikv.meta.TiDBInfo) RangeSplitter(com.pingcap.tikv.util.RangeSplitter) com.qlangtech.tis.plugin.ds(com.qlangtech.tis.plugin.ds) Field(java.lang.reflect.Field) Collectors(java.util.stream.Collectors) TiConfiguration(com.pingcap.tikv.TiConfiguration) Public(com.qlangtech.tis.annotation.Public) IControlMsgHandler(com.qlangtech.tis.runtime.module.misc.IControlMsgHandler) Catalog(com.pingcap.tikv.catalog.Catalog) Maps(com.pingcap.com.google.common.collect.Maps) Types(java.sql.Types) AtomicReference(java.util.concurrent.atomic.AtomicReference) TiDAGRequest(com.pingcap.tikv.meta.TiDAGRequest) TiTableInfo(com.pingcap.tikv.meta.TiTableInfo)

Aggregations

Public (com.qlangtech.tis.annotation.Public)7 TISExtension (com.qlangtech.tis.extension.TISExtension)6 FormField (com.qlangtech.tis.plugin.annotation.FormField)5 FormFieldType (com.qlangtech.tis.plugin.annotation.FormFieldType)5 Validator (com.qlangtech.tis.plugin.annotation.Validator)5 Context (com.alibaba.citrus.turbine.Context)4 IOUtils (com.qlangtech.tis.extension.impl.IOUtils)4 StringUtils (org.apache.commons.lang.StringUtils)4 IDataxContext (com.qlangtech.tis.datax.IDataxContext)3 IDataxProcessor (com.qlangtech.tis.datax.IDataxProcessor)3 ISelectedTab (com.qlangtech.tis.plugin.ds.ISelectedTab)3 IControlMsgHandler (com.qlangtech.tis.runtime.module.misc.IControlMsgHandler)3 List (java.util.List)3 Optional (java.util.Optional)3 Collectors (java.util.stream.Collectors)3 Lists (com.pingcap.com.google.common.collect.Lists)2 Maps (com.pingcap.com.google.common.collect.Maps)2 TiConfiguration (com.pingcap.tikv.TiConfiguration)2 TiSession (com.pingcap.tikv.TiSession)2 Catalog (com.pingcap.tikv.catalog.Catalog)2