public QueryPartitionBase(QueryBase query, Context context) : base(query) { InitializeMembers(new StreamingContext()); this.Context = context; this.query = query; }
public virtual Dictionary<string, object> GetWorkflowParameters(QueryBase query) { return new Dictionary<string, object>() { { "Query", query }, { "UserGuid", Guid.Empty }, { "JobGuid", Guid.Empty }, }; }
public override JobInstance ScheduleAsJob(QueryBase query, string queueName, string comments) { var job = CreateJobInstance( EntityFactory.CombineName(EntityType.JobDefinition, Registry.AppSettings.FederationName, typeof(SqlQueryJob).Name), queueName, comments); job.Parameters["Query"].Value = query; return job; }
public override JobInstance ScheduleAsJob(QueryBase query, string queueName, string comments) { var job = CreateJobInstance( String.Format("{0}.{1}", Federation.AppSettings.FederationName, typeof(SqlQueryJob).Name), queueName, comments); job.Parameters["Query"].SetValue(query); return job; }
private void CopyMembers(QueryPartitionBase old) { this.id = old.id; this.query = old.query; this.partitioningKeyFrom = old.partitioningKeyFrom; this.partitioningKeyTo = old.partitioningKeyTo; this.tableSourceReferences = new Dictionary<string, TableReference>(old.tableSourceReferences, SchemaManager.Comparer); this.remoteTableReferences = new Dictionary<string, TableReference>(old.remoteTableReferences, SchemaManager.Comparer); }
protected QueryBase(QueryBase old) : base(old) { CopyMembers(old); }
private void CopyMembers(QueryBase old) { this.queryTimeout = old.queryTimeout; this.destination = old.destination; this.isDestinationTableInitialized = old.isDestinationTableInitialized; this.sourceDatabaseVersionName = old.sourceDatabaseVersionName; this.statDatabaseVersionName = old.statDatabaseVersionName; this.tableStatistics = new List<TableReference>(); // *** this.partitions = new List<QueryPartitionBase>(old.partitions.Select(p => (QueryPartitionBase)p.Clone())); this.destinationDatabaseInstance = new EntityProperty<DatabaseInstance>(old.destinationDatabaseInstance); this.partitioningTable = old.partitioningTable; this.partitioningKey = old.partitioningKey; }
protected abstract void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds, SqlServerDataset codeds);
protected override void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds) { query.ExecutionMode = ExecutionMode.SingleServer; query.QueryString = queryString; query.QueryTimeout = 7200; if (mydbds != null) { query.DefaultDataset = mydbds; // Add MyDB as custom source query.CustomDatasets.Add(mydbds); // Set up MYDB for destination query.Destination.Table = new Table(); query.Destination.Table.Dataset = mydbds; query.Destination.Table.DatabaseName = mydbds.DatabaseName; query.Destination.Table.SchemaName = mydbds.DefaultSchemaName; query.Destination.Operation = DestinationTableOperation.Drop | DestinationTableOperation.Create; } // Set up temporary database query.TemporaryDataset = tempds; }
protected JobInstance ScheduleQuery(string queuename, QueryBase q) { var job = QueryFactory.ScheduleAsJob(q, queuename, Comments.Text); job.Save(); return job; }
private void OnAsyncExecute(Guid workflowInstanceGuid, string activityInstanceId, QueryBase query, TableReference tableReference, string connectionString, string sql) { RegisterCancelable(workflowInstanceGuid, activityInstanceId, query); query.ComputeTableStatistics(tableReference, connectionString, sql); UnregisterCancelable(workflowInstanceGuid, activityInstanceId, query); }
private void InitializeMembers() { this.inputFile = null; this.query = null; this.outputTable = null; this.taskName = null; }
protected override void GetInitializedQuery_Graywulf(QueryBase query, string queryString, string outputTable) { var ef = new EntityFactory(Context); var federation = ef.LoadEntity<Federation>(Registry.AppSettings.FederationName); var jd = ef.LoadEntity<JobDefinition>(Registry.AppSettings.FederationName, typeof(SqlQueryJob).Name); var settings = new SqlQueryJobSettings(jd.Settings); var user = new User(Context); user.Guid = Context.UserGuid; user.Load(); query.ExecutionMode = ExecutionMode.Graywulf; query.FederationReference.Name = Registry.AppSettings.FederationName; query.QueryString = queryString; query.SourceDatabaseVersionName = settings.HotDatabaseVersionName; query.StatDatabaseVersionName = settings.StatDatabaseVersionName; query.QueryTimeout = settings.QueryTimeout; // Add MyDB as custom source var mydbds = new GraywulfDataset(); mydbds.Name = settings.DefaultDatasetName; mydbds.DefaultSchemaName = settings.DefaultSchemaName; mydbds.DatabaseInstance.Value = federation.MyDBDatabaseVersion.GetUserDatabaseInstance(user); mydbds.CacheSchemaConnectionString(); mydbds.IsMutable = true; query.CustomDatasets.Add(mydbds); query.DefaultDataset = mydbds; // Set up MYDB for destination // ****** TODO add output table name to settings */ query.Destination = new DestinationTable( mydbds, mydbds.DatabaseName, settings.DefaultSchemaName, String.IsNullOrWhiteSpace(outputTable) ? "outputtable" : outputTable, TableInitializationOptions.Drop | TableInitializationOptions.Create); // Set up temporary database var tempds = new GraywulfDataset(); tempds.Name = Registry.Constants.TempDbName; tempds.IsOnLinkedServer = false; tempds.DatabaseVersion.Value = federation.TempDatabaseVersion; query.TemporaryDataset = tempds; // Set up code database var codeds = new GraywulfDataset(); codeds.Name = Registry.Constants.CodeDbName; codeds.IsOnLinkedServer = false; codeds.DatabaseVersion.Value = federation.CodeDatabaseVersion; query.CodeDataset = codeds; }
protected override void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds, SqlServerDataset codeds) { query.ExecutionMode = ExecutionMode.SingleServer; query.QueryString = queryString; query.QueryTimeout = 7200; if (mydbds != null) { query.DefaultDataset = mydbds; // Add MyDB as custom source query.CustomDatasets.Add(mydbds); // Set up MYDB for destination query.Destination = new DestinationTable( mydbds, mydbds.DatabaseName, mydbds.DefaultSchemaName, "", // *** TODO ? TableInitializationOptions.Drop | TableInitializationOptions.Create); } // Set up temporary and code database query.TemporaryDataset = tempds; query.CodeDataset = codeds; }
public abstract JobInstance ScheduleAsJob(QueryBase query, string queueName, string comments);
private void InitializeMembers(StreamingContext context) { this.id = 0; this.query = null; this.partitioningKeyFrom = double.NegativeInfinity; this.partitioningKeyTo = double.PositiveInfinity; this.tableSourceReferences = new Dictionary<string, TableReference>(SchemaManager.Comparer); this.remoteTableReferences = new Dictionary<string, TableReference>(SchemaManager.Comparer); }
protected override void GetInitializedQuery_Graywulf(QueryBase query, string queryString, string outputTable) { var federationname = Federation.AppSettings.FederationName; var ef = new EntityFactory(Context); var federation = ef.LoadEntity<Federation>(federationname); var jd = ef.LoadEntity<JobDefinition>(federationname, typeof(SqlQueryJob).Name); var user = new User(Context); user.Guid = Context.UserGuid; user.Load(); // Load settings // **** TODO: this always takes settings from SqlQueryJob!! var settings = Jhu.Graywulf.Registry.Util.LoadSettings<Settings>(jd.Settings); query.ExecutionMode = ExecutionMode.Graywulf; query.FederationReference.Name = federationname; query.QueryString = queryString; query.SourceDatabaseVersionName = settings[Settings.HotDatabaseVersionName]; query.StatDatabaseVersionName = settings[Settings.StatDatabaseVersionName]; query.QueryTimeout = int.Parse(settings[Settings.LongQueryTimeout]); // Add MyDB as custom source var mydbds = new GraywulfDataset(); mydbds.Name = settings[Settings.DefaultDatasetName]; mydbds.DefaultSchemaName = settings[Settings.DefaultSchemaName]; mydbds.DatabaseInstance.Value = user.GetUserDatabaseInstance(federation.MyDBDatabaseVersion); mydbds.CacheSchemaConnectionString(); query.CustomDatasets.Add(mydbds); query.DefaultDataset = mydbds; // Set up MYDB for destination // ****** TODO add output table name to settings */ query.Destination.Table = new Table() { Dataset = mydbds, SchemaName = settings[Settings.DefaultSchemaName], TableName = String.IsNullOrWhiteSpace(outputTable) ? "outputtable" : outputTable }; query.Destination.Operation = DestinationTableOperation.Drop | DestinationTableOperation.Create; // Set up temporary database var tempds = new GraywulfDataset(); tempds.IsOnLinkedServer = false; tempds.DatabaseVersion.Value = federation.TempDatabaseVersion; query.TemporaryDataset = tempds; query.TemporaryDataset.DefaultSchemaName = settings[Settings.TemporarySchemaName]; // Set up code database var codeds = new GraywulfDataset(); codeds.Name = "Code"; // *** TODO codeds.IsOnLinkedServer = false; codeds.DatabaseVersion.Value = federation.CodeDatabaseVersion; query.CodeDataset = codeds; query.CodeDataset.DefaultSchemaName = "dbo"; // *** TODO }
public virtual Activity GetAsWorkflow(QueryBase query) { return new SqlQueryJob(); }
protected abstract void GetInitializedQuery_Graywulf(QueryBase query, string queryString, string outputTable);
protected abstract void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds);