Would AwareIM work as a front end to a data warehouse?

If you have questions or if you want to share your opinion about Aware IM post your message on this forum
Jaymer
Posts: 2521
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Would AwareIM work as a front end to a data warehouse?

Post by Jaymer »

If you had a legacy btrieve system that you wanted to extract all the data from and make available as a MSSQL READ ONLY Web system, for looking up historical data, do you think Aware would be a good fit for this?

What if it was a poorly designed system that had 300 fields in the order entry lines file?
What if you were going to have 25 million rows in order lines history?
Would you want to "flatten" it out and denormalize the data for better/traditional data warehouse type queries (making an even "wider" flat file and a lot more storage required per row), OR
would you keep it poorly normalized as is?
In fact, it could be normalized one more level (which is why it was poorly designed to begin with) at conversion time.

The backend database might appreciate it being denormalized for faster queries but I wonder how Aware would handle a long tuple.
And can you imagine writing just one Procedure/Process where you needed to copy 300 fields into another record in Aware's SQL builder window... wouldn't that be a pain?

any suggestions?
thx, jaymer...
Last edited by Jaymer on Tue Dec 06, 2016 2:02 am, edited 1 time in total.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
4xjbh
Posts: 177
Joined: Thu Dec 22, 2005 10:01 pm
Location: Brisbane

Re: Would AwareIM work as a front end to a data warehouse?

Post by 4xjbh »

I noticed one of the queries in the examples was pulling data from a plugin linked to a northwind database. Maybe your situation may require this seeing the DB already exists.

If you could get a copy of the schema I'm sure Vladimir could assist in some way so you don't spin your wheels too much...
Regards, James

AwareIM 7.1 on AWS - Beware I'm a AwareIM noob. Anything I help you with might make the hole your in deeper.
BenHayat
Posts: 2749
Joined: Thu Dec 23, 2010 5:48 am
Location: Fla, USA
Contact:

Re: Would AwareIM work as a front end to a data warehouse?

Post by BenHayat »

Well, my first question is, are you going to use an ODBC driver to read Btrieve 5.2 version or will you use Pervasive's new driver to read the Btrieve files?
I think to use Aware, you may have to go with Pervasive driver to start with and then use SQL to access data.
Jaymer
Posts: 2521
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Would AwareIM work as a front end to a data warehouse?

Post by Jaymer »

None of the data will exist in btrieve. Its being extracted/converted/massaged into something else (MSSQL, most likely).
At that time I can normalize/denormalize.
Sorry, I'll edit the OP.
Please delete replies # 2 & 3 and then I'll delete this ... to keep this thread clean.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
CalD
Posts: 146
Joined: Sun May 08, 2016 10:20 pm

Re: Would AwareIM work as a front end to a data warehouse?

Post by CalD »

If you are talking denormalising, or re normalising the data is a conversion to sql off the table?
Jaymer
Posts: 2521
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Would AwareIM work as a front end to a data warehouse?

Post by Jaymer »

CalD wrote:If you are talking denormalising, or re normalising the data, is a conversion to sql off the table?
no, i'm definitely going to be using a large SQL backend db to store 25 million rows of data.

my larger issue is whether AwareIM can handle it. not the data size, but the UI.
Can it work nicely as a front end to a large dataset?

Did you see this thread http://www.awareim.com/forum/viewtopic. ... 259#p41517 and what roger has to go through just to offer some front end options for searching 3 fields and sorting a few ways?
And also in that post you can see how TFORD made a front end to allow querying on 8 fields or so.
Its a lot of legwork to go through for such simple functionality.
I don't want to get deep into it to find i'm pulling my hair out cause the tool isn't a great fit for this particular thing.

Fortunately, I'll be able to pass a lot of the searches off to the back end with views and stored procedures.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Posts: 2521
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Would AwareIM work as a front end to a data warehouse?

Post by Jaymer »

CalD wrote:If you are talking denormalising, or re normalising the data, is a conversion to sql off the table?
Also, a normalized data structure is preferred for insert/update transactional systems.
This is an offline historical database to be queried for previous order research/warranty info/etc.
It can fully be denormalized and still be in a SQL backend... but will Aware like it (ie. tuples with lots of fields and data length).
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
johntalbott
Posts: 620
Joined: Wed Jun 17, 2015 11:16 pm
Location: Omaha, Nebraska
Contact:

Re: Would AwareIM work as a front end to a data warehouse?

Post by johntalbott »

This isn't AwareIM's sweet spot.

Have you looked at Power BI? https://powerbi.microsoft.com/en-us/
VocalDay Solutions - Agility - Predictability - Quality

We specialize in enabling business through the innovative use of technology.

AwareIM app with beautiful UI/UX - https://screencast-o-matic.com/watch/crfUrrVeB3t
tford
Posts: 4238
Joined: Sat Mar 10, 2007 6:44 pm

Re: Would AwareIM work as a front end to a data warehouse?

Post by tford »

Jaymer,

I don't see any reason why AwareIM can't meet your needs based on what you've described especially with a normalized historical database. It sounds like there will be no updates to the historical data, so you can even build in certain flags and attributes to make searching and sorting even more efficient.

The forum post that you referenced earlier showed a very complicated query that was built to meet a specific need. AwareIM certainly has easier ways to query data .. that was just one example of the power under the hood.
Tom - V8.8 build 3137 - MySql / PostGres
Jaymer
Posts: 2521
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Would AwareIM work as a front end to a data warehouse?

Post by Jaymer »

johntalbott wrote:This isn't AwareIM's sweet spot.

Have you looked at Power BI? https://powerbi.microsoft.com/en-us/
John
We have PowerBI and are using that for other things... this app is to provide web lookup of historical data. For this I don't need the analysis, interactive reports, etc.
From what I've seen, PowerBI is slick indeed!
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
CalD
Posts: 146
Joined: Sun May 08, 2016 10:20 pm

Re: Would AwareIM work as a front end to a data warehouse?

Post by CalD »

from what i am reading here and perhaps I am off base but if you are going to flatten the data then why not use the inbuilt filtering and sorting? you can use aware to turn on/off columns (user can do themselves), have multiple filter columns. etc is the aim for the users to search and filter the data then export it?

I'd be interested to try that with 25mil records on a reasonable but not over spec'd server. 25mil is a bit but its not a ridiculous amount in this day and age. Good index's (probably lots of them) would be the key, but you are in the fortunate position where by you are not updating the data so the overhead of lots of index's are largely negated, biggest cost will be disk... and that is cheap anyway.
Jaymer
Posts: 2521
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Re: Would AwareIM work as a front end to a data warehouse?

Post by Jaymer »

Results of my 1st test. ALSO Big concerns BELOW

I decided to try accessing the btrieve data via AWARE, using PSQL 12 server and JDBC drivers.
This provides a chance to do a proof of concept to the powers that be without investment all the way into MSSQL, etc.

The builtin filtering/searching seems to work... but at first, I thought there was a problem reading my btrieve data.

I made a query to view "All Order Lines", and when I ran it, I only saw the headings. No data. The query for "All Orders" worked and displayed data fine. I figured something was amiss in the field mapping or something and AIM didn't read the data correctly and just crapped out.
Problem was that it [PSQL engine, I guess] was reading through all 100k recs and if you gave it a minute or two, the data displayed. There was no error after all. In fact, when I view Order Headers, you can see a tiny delay between the heading line display... and then the data appears. But its only like 2 seconds compared to 60 seconds. (This makes sense [a little] if you think about it as AIM displays the Page Navigation arrows, so it somehow knows how many recs are out there and gives you a way to page through them.)
File size is 40k headers with 100k lines.

In reality, FOR WHAT I'M DOING HERE, you wouldn't go hit the full 100k Order Lines file anyway, as you'd only be using the primary key to find the lines on a given order. Thats works fine and fast as you'd expect. I haven't tried any processes to see how long it would take to step through records, update fields, tally or do reporting.

CONCERNS
But if you wanted to just give users access to that Order Lines file, then I'd be concerned with why it takes 60 seconds for the data to come up. Where is this bottleneck coming from? JDBC? PSQL? Sorting required behind the scenes? Dunno. But if I use the built in editing button, where SAVE-CLOSE buttons are on the bottom, when I click CLOSE, it takes 60 seconds AGAIN to go back a screen. (Sure, then make it a popup, thats not the point).
I can only imagine this time would grow with more than 100k recs in the file.
So, part of continuing the Proof of Concept would be figuring out whats causing this delay and putting front and search boxes on to filter that initial hit on the db.
FORTUNATELY, this need isn't to give users search access to millions of rows from a BI perspective - its to lookup historical orders from known values - not just crazy searches through the data.

Work in progress,
jaymer...
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Posts: 2521
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Observation on dealing with 300 fields from outside data sou

Post by Jaymer »

PS _ Observation on dealing with 300 fields from outside data source

1) AIM doesn't give me the ability to rename data fields. So you're at the mercy of what programmer originally named fields, or at least whats in the DDFs.
2) AIM lets me delete fields from the BO, so I didn't need a bunch and I got rid of them. This helps A LITTLE when building a form as you don't have to see 300 fields.
3) When building a form, it sure is a hassle to deal with 200 fields - on grid output, you've got to find the 10 fields you're really interested in and get them to the top. Might be easier with that new GUI thats coming out, but scrolling through these tiny windows slows you down a bit.
4) I think its worth spending the time to go back to Magic and name the fields better - so there's less work to do in aware.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Posts: 2521
Joined: Tue Jan 13, 2015 10:58 am
Location: Tampa, FL
Contact:

Flattening Data

Post by Jaymer »

I def. think I'd like to do this, but it depends.

1) If I keep the data in btrieve and access via PSQL, then I'm not going to be able to change the source data. What I mean is that if I use the btr fields as they are, without writing routines to massage the data, then everything stays as it was in the production environment. This has the advantage of saving time & money and leaving files as is.
2) If I manually/physically migrate data into MSSQL, then I can dump unneeded fields AS WELL AS bring lookup descriptions into the main file.
3) BUT, I'd have to get the option of BruceL, our resident MSSQL pro, I'm wondering if I'd just build a MSSQL VIEW and use that as the data source into AIM --- not really flattening, but just giving the appearance of doing so.

When dealing with my type of data source, AIM says I can only add Shortcut fields. Apparently, I cannot even add a calculated field to make a new field for display purposes. So thats another reason to get the data the way I want it before AIM if I will use this as external data.
Of course another option would be to make a bunch of Shortcut references and let AIM do its thing, but since I have the ability to do it [at least] one step closer to the DB, then it makes sense to i.e. before AIM.

I think while doing the Proof of Concept makes it look like AIM will tackle the job, getting the data out of Btrieve and into something AIM can natively read is the best option.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.

Jaymer
Aware Programming & Consulting - Tampa FL
ACDC
Posts: 1156
Joined: Sat Jun 30, 2007 5:03 pm
Location: California, USA

Re: Would AwareIM work as a front end to a data warehouse?

Post by ACDC »

1) AIM doesn't give me the ability to rename data fields. So you're at the mercy of what programmer originally named fields, or at least whats in the DDFs.
I use stored procedures and then execute them using AIM to manipulate the external DB into a layout that AIM is happy with. Then I recreate the table in AIM with all the data from the external database. This lets me stay within AIM and use its power. I don't know if that makes sense in your situation though
Post Reply