Friday, March 23, 2012
Is this merge replica model possible?
I have this model in mind. That is presented below.
I am presenting 2 scenarios. Day 1 to day 7, cover scenario 1, and Day
9 covers scenario 2.
Day 1.
A user subscribes and downloads subscription X. The user works -off
line- on his locally cached data
Day 5
The same user decides that he wants to update the local subscription he
has got from day 1. Without having to (check-in) synchronize with the
server. Just pure update of the locally cached (data) subscription. You
can assume for simplicity the delta will cause no collisions with the
locally cached data.
Day 7.
The same user is happy with his work, so he synchronizes (merges) back
with the server. Assume all collisions (if any or no collisions at all)
are resolved.
Day 9.
The same user decides to work again. So he re-initialize with the
server. Can we be selective, say the server - based on history-
figures that the user has pretty much 90% of all the data he needs and
instead of downloading a fresh version, it downloads a delta instead.
You may ask why is that?
Ok, What we have is a huge replica, say in 100,000+++ records. And our
users can be connecting using modems. We don't want to waste time
downloading that amount when all changes that occur were the addition
of 1000 records to the database. So basically, if I downloaded on Day 1
100,000 record and on day 9, the replica would have included 100,1000
records - assume no collision for simplicity-. All I want is those 1000
records added to my 100,000 that are locally cached from Day 1.
Q1:
Is this model a total variant from the normal Merge Replica model?
Q2:
Is this model possible - built-in or by programming functionality it
does not really matter.
Q3:
Can one download a delta (new records added to the database) to the
local copy of the cached subscription from the server?
Q4:
Can we have a subscription that does not expire after synchronization
(merging) with the server?
Q5:
What kind of data transfers can I utilize to expedite the replica
transfer? My data is all ASCII. Can we compress the replica?
Q6:
Can we encrypt the replica after compression?
Please be techinically specific if at all possible.
Thank you sincerely so very much! .
I'm confused. He goes offline, makes changes, syncs on day 7, on day 9 he
syncs, and you want him to just receive the changes which occurred between
day 7 and day 9? This is precisely what happens. You can filter so he only
gets the data he needs.
1) this is the plain vanilla merge model - unless I am missing something.
2) you don't need to do any programming for this, just configure the
subscription
3) sure. Perhaps you might want to configure the ExchangeType 2 (which is
Download Only) to only the transactions which occurred on the publisher flow
to the subscriber. Right click on the merge agent, select agent properties,
Steps, Run Agent, Edit, and at the end of the command section hit space, and
then type -ExchangeType 2
Then accept all defaults and restart your agent.
4) No.
5) use the concurrent snapshot option
6) No, use the encrypted file system for this.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"lottoman" <lottoman2000@.gmail.com> wrote in message
news:1116348862.558557.136770@.g14g2000cwa.googlegr oups.com...
> Hello All,
> I have this model in mind. That is presented below.
> I am presenting 2 scenarios. Day 1 to day 7, cover scenario 1, and Day
> 9 covers scenario 2.
>
> Day 1.
> A user subscribes and downloads subscription X. The user works -off
> line- on his locally cached data
> Day 5
> The same user decides that he wants to update the local subscription he
> has got from day 1. Without having to (check-in) synchronize with the
> server. Just pure update of the locally cached (data) subscription. You
> can assume for simplicity the delta will cause no collisions with the
> locally cached data.
> Day 7.
> The same user is happy with his work, so he synchronizes (merges) back
> with the server. Assume all collisions (if any or no collisions at all)
> are resolved.
> Day 9.
> The same user decides to work again. So he re-initialize with the
> server. Can we be selective, say the server - based on history-
> figures that the user has pretty much 90% of all the data he needs and
> instead of downloading a fresh version, it downloads a delta instead.
> You may ask why is that?
> Ok, What we have is a huge replica, say in 100,000+++ records. And our
> users can be connecting using modems. We don't want to waste time
> downloading that amount when all changes that occur were the addition
> of 1000 records to the database. So basically, if I downloaded on Day 1
> 100,000 record and on day 9, the replica would have included 100,1000
> records - assume no collision for simplicity-. All I want is those 1000
> records added to my 100,000 that are locally cached from Day 1.
> Q1:
> Is this model a total variant from the normal Merge Replica model?
> Q2:
> Is this model possible - built-in or by programming functionality it
> does not really matter.
> Q3:
> Can one download a delta (new records added to the database) to the
> local copy of the cached subscription from the server?
> Q4:
> Can we have a subscription that does not expire after synchronization
> (merging) with the server?
> Q5:
> What kind of data transfers can I utilize to expedite the replica
> transfer? My data is all ASCII. Can we compress the replica?
> Q6:
> Can we encrypt the replica after compression?
> Please be techinically specific if at all possible.
> Thank you sincerely so very much! .
>
|||Hilary Cotter wrote:
> I'm confused. He goes offline, makes changes, syncs on day 7, on day
9 he
> syncs, and you want him to just receive the changes which occurred
between
> day 7 and day 9? This is precisely what happens. You can filter so he
only
> gets the data he needs.
> 1) this is the plain vanilla merge model - unless I am missing
something.
> 2) you don't need to do any programming for this, just configure the
> subscription
> 3) sure. Perhaps you might want to configure the ExchangeType 2
(which is
> Download Only) to only the transactions which occurred on the
publisher flow
> to the subscriber. Right click on the merge agent, select agent
properties,
> Steps, Run Agent, Edit, and at the end of the command section hit
space, and
> then type -ExchangeType 2
> Then accept all defaults and restart your agent.
> 4) No.
> 5) use the concurrent snapshot option
> 6) No, use the encrypted file system for this.
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
> Looking for a FAQ on Indexing Services/SQL FTS
> http://www.indexserverfaq.com
1- Let me ask the same question (Q1) with better wording
Can i download a replica on day 1 and then on day 7 download the delta
to that replica?
Delta is the new records added to the server (from day 1 to day 7)
after i dowload the replica. On day I download 1000 record. From d1 to
d7, the server recieved 10 new records. on day 7, i want to download
those 10 record only and add them to my replica. you cam assume no
collision.
Thank you
|||I'm still confused. Perhaps I am too easily confused.
I think this is what you want.
Day 1, download replica, go offline
In the meantime 10 records are added to the publisher.
Day 7 - sync.
With the exchange type of download only, those 10 records which were added
to the publisher will move from the publisher to the subscriber. Any changes
which occurred on the subscriber will remain there.
With an exchange type of upload only, those 10 records which were changed on
the publisher will remain on the publisher; any changes originating on the
subscriber will move to the publisher.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"lottoman" <lottoman2000@.gmail.com> wrote in message
news:1116601584.882308.67430@.f14g2000cwb.googlegro ups.com...
> Hilary Cotter wrote:
> 9 he
> between
> only
> something.
> (which is
> publisher flow
> properties,
> space, and
> 1- Let me ask the same question (Q1) with better wording
> Can i download a replica on day 1 and then on day 7 download the delta
> to that replica?
> Delta is the new records added to the server (from day 1 to day 7)
> after i dowload the replica. On day I download 1000 record. From d1 to
> d7, the server recieved 10 new records. on day 7, i want to download
> those 10 record only and add them to my replica. you cam assume no
> collision.
> Thank you
>
Friday, March 9, 2012
Is there anyway to do Data Mining model test via SSIS package?
Hi, all here,
I am wondering if there is any kind of ways for us to test data mining models via SSIS package? That'll be quite helpful if there is such a way.
Looking forward to hearing from your guidance and thanks a lot in advance.
With best regards,
Yours sincerely,
I would believe there is, but nothing immediately straightforward. The approach I would take is to use SQL Profiler to capture the query sent to the server when the accuracy chart is created. You could then put that query into SSIS and capture the results. The response to the query is (pretty much) just the coordinates for the chart you see, so they are easy to interpret.
|||Hi, Jamie, thanks a lot for your guidance.
I was thinking about if there is any possible data flow component in SSIS for data mining models verification straightforward like what they got for 'data mining model training'.
Best regards,
Yours sincerely
Is there any way to train a portion of a training data set from a selected dataset for data mini
Hi, all experts here,
I am wondering is there any way to select only a portion of a data set to train the mining model? In this case, I mean we dont need to split the dataset in advance, what I want to do is being able to select any random portion of a selected dataset to train a mining model. Any advices?
I am looking forward to hearing from you and thanks a lot in advance for your advices and help.
With best regards,
Yours sincerely,
With SQL Server 2005 you can replace DSV tables with named queries that are filtered by some condition you specify. One "simple" way to sample, for example is to add a random number column to your source data, and then filter on that random number in the DSV. To replace a table with a named query, simply right click the DSV table and select "Replace with named Query"
We are adding features to the next version of SQL Server Data Mining to assist with scenarios such as these.
|||Hi, Jamie,
Thanks for your advices. It's been helpful.
With best regards,
Yours sincerely,
Wednesday, March 7, 2012
Is there any way of Migrating reports from one server to another programmatically thru VB.NET?
I wanna know, is there any way of transfering/migrating reports from source server to destination server along with model references programmatically using VB.NET?
If there is a way, can anyone please give me a VB.NET Sample code to achieve my goal?
I will be grateful if anyone help me in this regard!!
Thanks in Advance
Shaun
This isn't exactly what you asked for, but it'll get you started. There are two samples -- One to publish the report and fix up it's data source, and another to grab the model definition and publish it to a server.
In the first sample, you'll need to change the part where the report defintion is loaded from a file to use a call to GetReportDefinition() (http://msdn2.microsoft.com/en-us/library/microsoft.wssux.reportingserviceswebservice.rsmanagementservice2005.reportingservice2005.getreportdefinition.aspx)
Later on in the first sample, the the Data Source reference should point to your model instead of the data source in the code itself.
In the second sample, the code reads a model and then republishes it to the *same* server. Create another instance of the web reference to the web service which points to the "other" machine, and use IT to publish to the new destination server.
private void button1_Click(object sender, EventArgs e)
{
SampleApp.localhost.ReportingService2005 rs = new SampleApp.localhost.ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
try
{
byte[] reportDefinition;
Warning[] warnings;
FileStream stream = File.OpenRead(@."C:\Program Files\Microsoft SQL Server\90\Samples\Reporting Services\Report Samples\AdventureWorks Sample Reports\Company Sales.rdl");
reportDefinition = new Byte[stream.Length];
stream.Read(reportDefinition, 0, (int)stream.Length);
stream.Close();
// Create a report which utilizes a pre-existing shared data source
// Optionally, set properties on the report by replacing the null in the last parameter of
// CreateReport with an array of properties
localhost.Property[] reportProps = new Property;
reportProps[0] = new Property();
reportProps[0].Name = "PageHeight";
reportProps[0].Value = "279.4";
reportProps[1] = new Property();
reportProps[1].Name = "PageWidth";
reportProps[1].Value = "215.9";
reportProps[2] = new Property();
reportProps[2].Name = "TopMargin";
reportProps[2].Value = "12.7";
reportProps[3] = new Property();
reportProps[3].Name = "BottomMargin";
reportProps[3].Value = "12.7";
reportProps[4] = new Property();
reportProps[4].Name = "LeftMargin";
reportProps[4].Value = "12.7";
reportProps[5] = new Property();
reportProps[5].Name = "RightMargin";
reportProps[5].Value = "12.7";
warnings = rs.CreateReport("Company Sales", "/AdventureWorks Sample Reports", true, reportDefinition, reportProps);
if (warnings!=null)
{
Console.WriteLine("Warnings occured when creating report");
foreach (Warning warning in warnings)
Console.WriteLine("\t" + warning.Code + ": " + warning.Message);
}
try
{
// Report was created, now fix up datasource reference to make sure report points at correct ds
DataSourceReference reference = new DataSourceReference();
DataSource[] dsarray = new DataSource[1];
DataSource ds = new DataSource();
reference.Reference = "/Data Sources/AdventureWorks";
ds.Item = (DataSourceReference)reference;
ds.Name = "AdventureWorks";
dsarray[0] = ds;
rs.SetItemDataSources("/AdventureWorks Sample Reports/Company Sales", dsarray);
}
catch (SoapException ex)
{
Console.WriteLine("Error Code: " + ex.Detail["ErrorCode"].InnerXml);
Console.WriteLine("Message: " + ex.Detail["Message"].InnerXml);
}
}
....and here's how to get the model:
private void button2_Click(object sender, EventArgs e)
{
localhost.ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
//To hold SMDL as byte array
Byte[] modelDef;
//Work on pre-published Model
//... if it's not already there. See CreateDataSource.cs for more inforamtion
//Get definition of model, save in byte array
modelDef = rs.GetModelDefinition("/Models/Adventure Works");
//Publish Model
try
{
rs.CreateModel("CopyOfAdventureWorksModel", "/Models", modelDef, null);
}
catch (System.Web.Services.Protocols.SoapException ex)
{
Console.WriteLine(ex.Detail.InnerXml.ToString());
}
}
I will get back to you at the earliest, coz I need to give this code to my client!!!
Will reply to you after he gets back to me!!