Example #1
0
        public void ExtractEngineData(int exportDataId, int projectId, string userName)
        {
            var extractDataSetMappingModel = new ExtractDataSetMappingModel();

            try
            {
                _logger.LogInformation($"开始抽取export_id:{exportDataId},projectId:{projectId},userName:{userName}");
                string tableName = Guid.NewGuid().ToString("N");

                var engineData         = _dbMySql.Queryable <SearchEngineDataModel>().Where(x => x.Id == exportDataId).First();
                var extractDataListSql = string.Format(GetSqlText("ExtractEngineData-GetExportDataList.sql"), engineData.DataType, exportDataId);

                //获取原始数据
                DataTable dtSource = _dbMySql.Ado.GetDataTable(extractDataListSql);

                _logger.LogInformation("开始数据表格式处理");
                LegacyCodeHandler legacyCodeHandler = new LegacyCodeHandler(_legacyCodeHandler);
                //数据转成表格
                DataTable dtFormat = legacyCodeHandler.ConvertToStandardTable(dtSource, engineData.DataType);
                dtFormat.TableName = tableName;

                _logger.LogInformation("开始在sql server创建mapping关系");
                //ms sql server 创建dataset table_config的mapping关系
                var createMappingSql = string.Format(GetSqlText("ExtractEngineData-CreateMapping.sql"), engineData.DiseaseId, engineData.DataName, engineData.Id, userName, tableName, projectId, engineData.DataType, dtFormat.Rows.Count);
                extractDataSetMappingModel = _dbKyStatic.Ado.SqlQuerySingle <ExtractDataSetMappingModel>(createMappingSql);
                _logger.LogInformation("开始导入数据");

                //创建数据表 将所有列插入到data_field 表
                legacyCodeHandler.CreateSchemaAndExportData(extractDataSetMappingModel, dtFormat);
                _logger.LogInformation($"抽取结束datasetId:{extractDataSetMappingModel.DataSetId},tableId:{extractDataSetMappingModel.TableId}");
            }
            catch (Exception ex)
            {
                _logger.LogError("搜索引擎数据导入到sql server失败:" + ex.ToString());
                DeleteDataSet(extractDataSetMappingModel.DataSetId);
            }
        }