private OlapTransformedItems GetOrAdd(string tableName, string key, List <string> partitions) { var name = key; if (_tables.TryGetValue(name, out var table) == false) { _tables[name] = _config.Format switch { OlapEtlFileFormat.Parquet => (table = new ParquetTransformedItems(tableName, key, _localFilePath, _fileNameSuffix, partitions, _config)), _ => throw new ArgumentOutOfRangeException(nameof(OlapEtlConfiguration.Format)) }; } return(table); }
public OlapDocumentTransformer(Transformation transformation, DocumentDatabase database, DocumentsOperationContext context, OlapEtlConfiguration config) : base(database, context, new PatchRequest(transformation.Script, PatchRequestType.OlapEtl), null) { _config = config; _tables = new Dictionary <string, OlapTransformedItems>(); var localSettings = BackupTask.GetBackupConfigurationFromScript(_config.Connection.LocalSettings, x => JsonDeserializationServer.LocalSettings(x), database, updateServerWideSettingsFunc: null, serverWide: false); _localFilePath = localSettings?.FolderPath ?? (database.Configuration.Storage.TempPath ?? database.Configuration.Core.DataDirectory).FullPath; _fileNameSuffix = ParquetTransformedItems.GetSafeNameForRemoteDestination($"{database.Name}-{_config.Name}-{transformation.Name}"); LoadToDestinations = transformation.GetCollectionsFromScript(); }