wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

Upload: timothy-marshall

Post on 02-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    1/22

    Modeling Proven Practices for IBM Cognos Framework Manager

    Event ID: 15447

    Chris McPherson: My name is Chris McPherson. I'm the Product Manager forFramework Manager and Metadata in the Cognos platform. I am going to be

    speaking to you today about modeling proven practices for IM Cognos Framework

    Manager. !ome of the things we are going to talk about today are modeling

    metadata for business intelligence" modeling for consistent" predictable results. #e

    are going to talk a little bit about maintainable models. #e will talk about purpose

    built models to match reporting re$uirements. %hen we are going to move into

    some modeling concepts. #e will touch on topics of cardinality" determinants"

    granularity and !& generation.

    (nd )nally we will talk a little bit about some useful features in Framework Manager

    to help you streamline your modeling. #e are going to look at the bulk change

    capabilities" Conte*t +*plorer and the Model (dviser.

    Modeling for consistent and predictable results , at the end of the day what you

    really want to get out of a good Framework management model is consistent and

    predictable results. -ou also want good performing $ueries" but the numbers really

    need to be correct. !ome of the keys to driving those results you want are

    understanding your reporting re$uirements. -ou need to sit down with your reportauthors and make sure that their reporting re$uirements are clear. -ou really need

    to have a sense for the sort of business $uestions report authors will be trying to

    answer. If you are not clear on what it is that they want" it is unlikely that you will

    be able to deliver what they want.

    &uestions like what kind of reports will they be writing. o they need relational

    packages or dimensionally remodel packages/ 0r do they need both/ #hat

    additional re$uirements are there for the application/ o they need security

    implemented" and if so" what kind/ Is there a re$uirement for multi1lingual data/%hese things are the easiest to manage when you know about them in advance and

    can implement them as you go rather than trying to retro)t them afterwards.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    2/22

    2now your data. It is important to communicate with your ( and become familiar

    with the structure you will be modeling. -ou should have he or she identify the fact

    tables" dimensions and which tables connect as both.

    3reat purpose speci)c views. 3ive the report authors what they want by organi4ing

    it into a logical fashion tailored for their reporting re$uirements.

    %he last point to make in this slide is to leverage modeling resources. %here is a

    wealth of information available in the FM documentation" the guidelines for

    modeling metadata and the proven practices website. %here are a lot of documents

    out there that can e*plain and illustrate how to tackle speci)c challenges. Chances

    are you are not the )rst person to run into them and there might be an answer

    already out there.

    uilding maintainable models. uilding a maintainable model is something that I

    think is really fundamental. -ou want to build a model that is well organi4ed and it

    is easy to navigate. %o that end import only what you need. Importing only the

    ob5ects that you need at the start and then gradually adding as you go will make it

    easier to navigate and )nd things in your model. (lso" change as little as possible

    in the import view because changes at this level are universal in the sense that they

    will a6ect all of the upper level ob5ects that might use them as a source.

    (fter you import" always verify the relationships and $uery item properties in the

    import view. -ou want to ensure that the necessary relationships are present and

    that the cardinality is correct for the reporting purposes. -ou should also ensure

    that the $uery items are correctly identi)ed as this can a6ect $uery generation.

    I recommend creating a business view or a logical view to apply your business rules.

    -ou can add your calculations" )lters" et cetera at this level as well as give your

    ob5ects names that report authors will understand. !omething else that a business

    view does is give you a level of insulation from changes that you might need to

    make down the road. 0b5ects at this business level can be retargeted to di6erent

    import view sources without impacting the higher level ob5ects.

    Create a presentation view to organi4e your ob5ects for the report authors.

    Presentation view is the layer that you want the report authors to see in the

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    3/22

    metadata tree in the studios. !o organi4e your ob5ects accordingly so that it is easy

    to navigate and understand.

    %he last item in this section that I would like to speak about is keeping models to a

    manageable si4e. %he larger the model is" the more di7cult that it can be to

    navigate. (lso very large models can cause performance issues in Framework

    Manager and can make the 8Is sluggish and unresponsive. Certain memory

    intensive operations are more fre$uently a6ected but it is a matter of good practice

    to keep your models below 9 megabytes in si4e.

    Purpose built models. I would recommend avoiding the temptation to build a one1

    si4e )ts all model. %he reality is that it will be di7cult to build and maintain a model

    that will satisfy all of the reporting re$uirements of all of your lines of business.

    ( better approach is to build several smaller" more focused models that are really

    targeted at a line of business or a set of re$uirements. ikewise" for ad hoc

    reporting models that are easy to navigate and almost guide the user are best.

    Most people do ad hoc reporting because they want a $uick and simple way to get

    out their data. !o we should model and publish packages accordingly.

    For professional report authoring" more comple* models and packages may bere$uired. (nd )nally" for analysis you are talking about a dimensionally modeled

    package to allow for the drill1up" drill1down e*perience.

    ;ow we are going to talk a little bit about some modeling concepts in Framework

    Manager. First modeling concept I would like to talk about is cardinality and how

    Framework Manager uses it. Cardinality is used to identify $uery sub5ects that

    behave as dimensions and facts. 0ne to end cardinality implies fact data on the

    inside and dimensional data on the one side. %his is also used to help $uery engine

    avoid things like double counting and to support loop 5oints.

    %he role of cardinality in the conte*t of a $uery is important because cardinality is

    used to determine when and where to split the $uery when generating multiple fact

    $ueries. If dimensions and facts are incorrectly identi)ed" stitch $ueries can be

    created unnecessarily. %his is costly to performance or can result in incorrectly

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    4/22

    formed $ueries which can give incorrect results. &uery sub5ect may behave as a

    fact or a dimension depending on the $uery sub5ect included in the $uery.

    !o an important recommendation to keep in mind is that you should always review

    and verify the imported relationships for their accuracy and cardinality. Check for

    multiple relationships" optional cardinality" although sometimes this is necessary for

    your business re$uirements. #herever possible use cardinality to clearly de)ne

    facts in your data source view.

    eterminants , what are they and when do I need them/ eterminants re

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    5/22

    %o try to give a simple e*ample that will e*plain determinants and granularity" let's

    return to the time dimension scenario. In this case each uni$ue instance of month

    key will repeat once for every day in a month. If you don't tell the $uery engine that

    month key re$uires grouping at the month level" sales target will be double counted

    for every day of the month" resulting in wildly incorrect sales target numbers.

    %o eliminate the potential that double counting will occur" you should set a

    determinant at each level of granularity. %o continue the previous e*ample" in this

    case you would set a uni$ue determinant on the day key as it is the uni$ue key in

    the table and is at the lowest level of granularity. (s such" you would select the

    uni$uely identi)ed check bo* and do not check the group by bo*.

    For month key you would not select the uni$uely identi)ed bo* because it repeats in

    the data" once for every day" and therefore is not uni$ue. -ou would select the

    group by determinant for the month key.

    %he ne*t topic we are going to touch on is !& generation. -ou can specify how

    Framework Manager generates the !& that retrieves data from relational data

    sources for data source $uery sub5ects or model $uery sub5ects. %he !&

    generation type of a $uery sub5ect can be set to either (s @iew or Minimi4ed. y

    default it is set to Minimi4ed. #hen the generation type is set to Minimi4ed" the

    generated !& contains only the minimum set of tables and 5oins needed to obtain

    values for the selected $uery items. %his is generally desirable because the fewer

    tables included in your !& statement" typically the faster your $ueries can be

    processed.

    #hen generation type is set to (s @iew" Framework Manager generates $ueries that

    contain the full !& statement that de)ne the $uery sub5ect. %he !& is treated as

    a view. For e*ample" you want the $uery to return the same number of rows each

    time that it is run.

    !o now let's have a look at a little demo where we can see where the !&

    generation settings are con)gured.

    !o I select a $uery sub5ect" I right click and select +dit e)nition. From the resulting

    dialogue I will select &uery Information. (nd then 0ptions. (nd then )nally the !&

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    6/22

    !etting. -ou will see I have the option to set as Minimi4ed or (s @iew. (s I

    mentioned" Minimi4ed is the default setting.

    3enerally speaking" because of the performance bene)ts of having fewer tables

    referenced in the $ueries" it is recommended to use Minimi4ed !& wherever

    possible. Aowever" there are certain settings that will trigger (s @iew !& and will

    override the setting" for e*ample" determinants on a model $uery sub5ect"

    relationships between model $uery sub5ects and )lters" macros" calculations" et

    cetera in your data source $uery sub5ects.

    It is important to remember that (s @iew !& is not always bad. In fact it can

    sometimes be necessary depending on your re$uirements. (t the end of the day"

    our modeling guidelines focus on ensuring consistent" predictable results" so in

    some cases tradeo6s need to be made to ensure that.

    ;ow we are going to spend a few minutes talking about features that can help

    streamline the modeling process. First o6 we will talk about ulk Change

    capabilities. %his feature allows users to search for $uery items by property and

    then make changes in ulk. (s we noted earlier" it is very important that $uery

    items be correctly identi)ed in terms of usage as this can a6ect $uery generation.

    It is important to review the usage of the $uery items in your data source $uery

    sub5ects after import to ensure that they are properly identi)ed. ecause you have

    the ability to search for $uery items by property as well as by name" this feature

    would be useful in making modi)cations to collections of $uery items when

    performing your validation after import.

    In this demo" after we have done an import we are going to search for all of the

    $uery items identi)ed as fact to ensure that they are correctly identi)ed.

    I click the search button and I can now see all of the $uery items that have the

    usage of fact. I can see from the list that a number of key )elds have been

    incorrectly identi)ed as facts. I want to change the property to ensure that they are

    handled as identi)er by the $uery engine. I can simply select all of these columns

    and I see them listed in the properties panel below.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    7/22

    %o make these change I 5ust need to select the usage dropdown and select Identi)er.

    0nce I have done that I can pull down on the little arrow to make the change across

    all of the columns. I can now go back and e*amine those columns and see that

    they have been changed to Identi)er.

    %he ne*t feature I would like to talk a little bit about is the Conte*t +*plorer. ;ow

    the Conte*t +*plorer is a mechanism that lets you select $uery sub5ect in your

    model and then launch a diagram to display the other ob5ect around it. It will show

    the selected $uery sub5ect and all of those $uery sub5ects that are related. %his

    gives you a means to do some lower level e*ploration of a portion of your model.

    In the Conte*t +*plorer itself you have the ability to perform a lot of the same

    actions you could do in the regular view. -ou can create new $uery sub5ects" you

    can edit e*isting $uery sub5ects" modify e*isting relationships between $uery

    sub5ects or add new ones.

    %here are also a couple of handy features like the ability to print the diagram you

    see or have organi4ed in Conte*t +*plorer. %here is also a screen capture capability

    so that you can easily paste an image of the diagram you are using into an email or

    other document for sharing and collaborating with team members.

    %o launch the Conte*t +*plorer" simply select the $uery sub5ect from the metadata

    tree in Framework Manager. From the right click menu you will have the option to

    launch Conte*t +*plorer. -ou can see that the result is a diagram that has the

    selected ob5ect at the center and all of the related ob5ects laid out on the screen

    around it. From here you can edit the relationships" add relationships" modify the

    $uery sub5ects as re$uired. -ou also have the option to show all of the related

    ob5ects with all of the relationships.

    %his might be a little too much information" so the default view might be )ne for

    most operations. (s I mentioned you also have the ability to print and from the

    right click menu you can take a screen capture that you can easily share with

    teammates.

    %he last feature I want to talk about is one that was )rst introduced in version B.? of

    Framework Manager. (nd that is the Model (dvisor. Model (dvisor is a tool that

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    8/22

    analy4ed your model or a part of your model based on the documented modeling

    guidelines and identi)es potential issues that should be e*amined. It will look for

    things like ambiguous 5oin paths" potential issues with cardinality and determinants

    and so on. For novice modelers" the Model (dvisor can be helpful as an assistive

    tool problems that are encountered are documented and there are links to images

    to demonstrate the issue encountered as well as links to the documentation whereyou can )nd more detailed information about the problem at hand.

    For more e*perienced users" the Model (dvisor can be a good diagnostic tool.

    Periodically in the modeling process users can run the Model (dvisor to identify any

    potential areas of concern that should be ree*amined. Model (dvisor will check for

    potential issues in the following area , cardinality 5oin path determinants setting

    and DgovernorE con

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    9/22

    0nce we have con)gured the Model (dvisor we simply click the (naly4e button and

    we end up with a useful list of potential issues based on the criteria that we set.

    %here are links to the Conte*t +*plorer where you can have a more visual view of

    the problem that it is describing. From here you can also take steps to remedy the

    potential issue. (nd there are also helpful links to the documentation where you

    can drill down into the problem and get some more detailed information along withsome potential paths to resolve.

    -ou can also print or save this list and have it on hand as we work through our

    modeling issues and have it available to share with other team members.

    !o as we saw" the Model (dvisor can be invoked to analy4e your entire model or can

    be used on a per ob5ect basis. ike the verify model feature" it is something that

    should be used in stages as you build your model. 0ne suggested work

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    10/22

    Aello everybody it is Chris McPherson here. I would be glad to answer whatever

    $uestions you have. If you want to submit them by chat what I will do is I will read

    out the $uestion and I will give some comments. %here are a lot of people on the

    line" so if we donHt get to all of them please donHt hesitate to send me an email and I

    can follow up with you oine.

    0bviously if the $uestion is something that we need some back and forth or need to

    talk about something speci)c then I would probably advise that you 5ust send me an

    email and I will follow up with you directly.

    !o" one of the )rst $uestions we have got here is when should a $uery sub5ect item

    be set as an identi)er and not an attribute/ !o generally speaking the rules

    Framework Manager uses for this are if a $uery item is part of a key in a

    determinant it generally speaking should be an identi)er. ikewise if it participates

    in a relationship it should be an identi)er. (nd if it is a data type date or time it

    would be an identi)er.

    If it is none of the above and it is not a fact than it would be an attribute. (ttributes

    are typically strings.

    ;e*t $uestion. #hy is it preferred to apply relationships to data sources" $uerysub5ects and model $uery sub5ects/ #ell" generally speaking we recommend

    keeping the relationships at the data source level because these are the ob5ects

    that are going to be reused. ;ow" having said that" like anything else it really

    depends on the reporting re$uirements. (dding relationships to your model $uery

    sub5ects can trigger (s @iew behavior and it also re$uires that all relationships to

    that model $uery sub5ect would need to be recreated at that level. %he

    encapsulated relationships" in other words the relationships between the data

    source $uery sub5ects that made up that model $uery sub5ect would be respected

    but 5oins to that data source $uery sub5ect would be ignored. !o you would have to

    recreate those relationships at your business level to the other model $uery sub5ect

    level. Aowever" adding your relationships at the model $uery sub5ect level" at thebusiness level rather can be useful to override relationships if that happens to

    match the reporting re$uirements or if you want to generate some speci)c $uery

    behavior.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    11/22

    #e have another $uestion , can you address the situation when the data modeler

    and the report developer are the same person/ (re all the levels in the model still

    necessary when the report developer understands the database design/

    i6erent schools of thought on this. generally speaking we advocate having

    multiple levels for a number of reasons to give you a layer of abstraction so that you

    can keep your data source view in tact and keep it as close to the structure of your

    data source as possible and then give you" have a business view where you can

    create some model" $uery sub5ect" do some denormali4ation if that is what you

    need to do" add )lter and calculations and so on.

    !o it also gives you a level of insulations so that you can retarget these model $uery

    sub5ects if you happen to have a change in the data source. !o it gives you that

    level of insulation. #e also generally advocate having a presentation view which

    can be either model $uery sub5ects or shortcuts to model $uery sub5ects. %hat is"

    again" 5ust a rule of thumb" in a scenario where the report developer isn't

    necessarily the modeler.

    If in a case where one person is doing both roles" then obviously you may be able to

    dispense with the middle layer and 5ust have a series of model $uery sub5ects that

    then point to the data source and you can publish those directly. %here is no real

    technical reason or re$uirement to have that. It is 5ust in terms of organi4ation and

    giving you a layer of abstraction" that gives you some insulation against change ,

    that is typically why we recommend doing that.

    (nother $uestion , why should I not change anything in the database $uery

    sub5ects in my import layer. #hat if I need to do this/

    #e generally recommend not changing anything in the database $uery sub5ects

    because that" if it is simply a select star from table" which is the default when you

    do a straight import" it is called the simple $uery sub5ect as far as a $uery engine is

    concerned. !o it doesn't need any additional metadata. If you modify that the

    $uery engine can sometimes re$uire additional metadata and it won't get it from

    the model. !o you can encounter a scenario where it has to go to the data source

    to fetch that information. %hat is what we call a metadata callback. In some cases

    this is really not that big of a deal. !ome database vendors handle this very well

    and it doesn't result in much of a problem. ut in some cases it does. !o there are

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    12/22

    a series of techni$ues you can do to avoid this if you absolutely need to make

    modi)cations at the data source level.

    (nother reason we generally recommend not doing that is that (s @iew !& can be

    triggered" we talked about that a little bit in the presentation. Putting )lters or

    calculations in your data source $uery sub5ects can trigger (s @iew behavior. (nd

    lastly these" as I mentioned earlier" these data source $uery sub5ects are really

    global. %hey are the foundation upon which all of the higher level ob5ects in your

    model are created. !o any change you make there is a global change. !o that is

    why we generally recommend giving yourself a layer of abstraction and making

    changes like that in your business view.

    #e have another $uestion , what is the best practice for 5oining tables from

    di6erent databases/ #ell" 5oining tables from di6erent databases is something we

    support. -ou can have multiple data sources in your Framework Manager model.

    %he caveat there really is that you are going to be 5oining that on the report server

    in most cases. If you are talking about two di6erent schemas in the same database"

    then there could be an opportunity to have the database take on some of that work.

    ut if you are talking about let's say doing an import from > and another

    database from 0racle or two di6erent 0racle databases" you are talking about

    5oining that locally on the report servers. !o there is a performance consideration to

    be considered there because you are going to crunching all of that data on the

    server before you get your results set.

    I have another $uestion , the fairly large model with many nested name spaces and

    levels of organi4ation" how can I get an inventory or a list of all the ob5ects in my

    model/ #e do have a feature in Framework Manager called the Model eport. It is

    available from the tools menu" and what it will do is what you do is you select an

    ob5ect or a level of organi4ation in your model" so a name space or you can select it

    at the highest level of the pro5ect. (nd what it will do is it will run a report and give

    it to you in either an JM or A%M" an inventory with all of the hierarchies" the

    organi4ation of the model. !o all of the $uery sub5ects" the $uery items with their

    data types and so on for every ob5ect in the pro5ect" if that is what you selected" oron the name space" if that is what you happened to select.

    ;ow" it is kind of in a" it may not be tailored directly to the format you are looking

    for so we do have the option of specifying an J!% )le in the FM.I;I )le. !o if you

    wanted a )ltered view or you wanted to control how that report looks you have an

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    13/22

    option of writing an J!% )le and then referencing it in the FM.I;I )le and we will

    generate the report in the format that you are looking for.

    I have another $uestion , is it possible to copy a few ob5ects like $uery sub5ects"

    source table 5oins from one model to another using Framework Manager/ If not" is

    there a better way to do it/

    -ou do have copy and paste functionality in Framework Manager so you should be

    able to simply copy and paste ob5ects over. I would say the best way to do that

    would be to do an import from another model. %hrough copying and pasting you

    would have to recreate the data source in the new model" so you would have to

    make sure that that was there and all of the re$uired ob5ects were there. %he

    supported way to do that or the recommended way to do that would be to do a

    metadata import and then select the original Framework Manager model as the

    source to use when you are doing the import. (nd that should give you the ability

    to select what it is you want to import from that model and it will look after taking

    the necessary ob5ects for you.

    ;e*t $uestion" how do governors work when a $uery is going to return more than

    the speci)ed limits if the $uery on the terminated/ -es" the way this should

    work is you set the governors in Framework Manager and that is at the package

    level. !o those governors are set at the package level. %here are di6erent

    governors you can set" limit the number of rows and so on. #hat it will do is it will

    start to prepare the $uery and e*ecute it and it should 5ust stop the $uery whenever

    it reaches the limit that you set. I donHt think it has a way of knowing in advance

    how many records it is going to return. !o it will start the $uery and then it should

    5ust stop it whenever it gets close to the limit or whenever it reali4es that it is going

    to e*ceed the limit.

    (nother $uestion , is there a way to maintain versions to the packages like for

    models/ %here is versioning for the packages that you publish" that is an option

    when you are doing your publish. -ou can select how many versions you want tokeep on the server. %hat can be pretty useful if you are publishing out and you want

    to make sure that you donHt break anything in the reports that are accessing the old

    version. -ou simply keep a version or two on the server and then it gives you a little

    bit of insurance that you are not going to break anything. Aaving said that" the ne*t

    time you open one of those reports that access the old package it is going to try and

    synch up with the new package" so that is something to keep in mind.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    14/22

    !o that is available. In terms of being able to sort of archive packages on the

    server/ ;o" we donHt have anything right now that would let you say keep three

    versions of the package on the server and then write a report and indicate which

    version of that package you wanted to write. #hen you author a new report or youopen a report in the studio" it is always going to use the newest version of the

    package that is available.

    et me go through some more $uestions here. &uestion , #hat is the main use of

    minimi4ed !&/ !o generally speaking we advise using minimi4ed !& because it

    will reduce the number of columns that you need to return for any given $uery. !o

    if you create a model $uery sub5ect and it is using a series of columns from let's say

    a product line and product type" if you are only wanting to use one column from

    there" using minimi4ed !& will let you 5ust $uery and return that one column. If

    you have (s @iew behavior triggered it is going to treat that model $uery sub5ects

    (s @iew. !o in other words it is going to retrieve all of those columns that are

    included in the model $uery sub5ect even though you only were interested in the

    one. !o it is , it is all in the interest of the economy" accessing the fewest number

    of ob5ects because that typically will perform more $uickly.

    (nother $uestion , is there an easy way to e*port portions of your model out and

    then import this work into another model/ %his would be helpful if you want several

    smaller models for your reporting instead of one huge model.

    %here is a feature that is pretty similar to what the listener is referring to here. #e

    do have the option of both merging and branching. !o you can create kind of a

    master model and then branch o6 pieces of it into sub models. 3enerally speaking

    that is used for trying to model in a multi1modeler environment so you are

    designating di6erent people to work on di6erent portions of the model. (nd it gives

    you a mechanism to merge those changes back in. ut there really isn't any reason

    why you couldn't leverage that functionality 5ust to sort of segment your model into

    smaller pieces. %here also is a linking in segmenting which is similar to the merge

    and branch in the sense that you can segment out pieces of the model" but it

    doesn't have the kind of merge back into the master. In the case of segmenting it is

    actually sub1model" if you will. !o changes that are made to the original source are

    automatically pushed out , so there is kind of a live link there" whereas in merge

    and branch it is kind of a manual process to merge changes back in.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    15/22

    (nother $uestionKif there are more than one layer in the Framework Manager

    model" what is the best practice to create a relationship at the top layer. If we have

    a database view" intermediate view and business view , which layer is it preferred t

    keep the relationship between the ob5ects/

    (s I said" it is really" there is no one universal answer that will be right =L of the

    time. ut generally speaking we recommend keeping the relationships" if possible"

    at the database layer. For reasons I mentioned earlier" if you have them on model

    $uery sub5ects you end up triggering (s @iew behavior and so on" so as I say it is

    not =L all the time way to go" but generally speaking as a rule of thumb we

    recommend people keep those relationships at the database layer.

    Can an individual create items be secured so that some users see them and some

    users donHt/

    -es" you do have the ability to set ob5ect level security in Framework Manager so

    you can assign permissions based on group's enrolls" using the security model that

    we have in Cognos Connection. !o it is" if you select your $uery sub5ect" there is a

    right click option to specify ob5ect security and that is the interface that you would

    use to set that. -ou have access to the name space and you can say that members

    of this group or members of this role" I think even down to the user level" can either

    have access or not have access to those ob5ects.

    (nother $uestion , how to automatically detect changes made on the data source

    columns in FM/

    !o I think the $uestion really is how do we detect if the underlying data source has

    changed. #hat you would do is you would have to" I believe if you clicked the name

    space or the database of your name space and did verify model" it should try and

    test each one" do a $uick test on each one of those data source $uery sub5ects and

    make sure that the pro5ection list still matches the underlying data source. !o you

    would see" if there were changes to the data source you would see" either if it was

    an additive change you would see an additional column appear in our data source

    $uery sub5ect and if it was a case where the name of the column in your table in the

    database changed" you would see a broken icon because it wouldn't be able to

    resolve that.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    16/22

    !o" you could do it on a $uery sub5ect by $uery sub5ect level as well because you

    5ust verify and it would tell you whether it was still valid or not. ecause the data

    source $uery sub5ect is generally speaking a select DstarE from cable" that is how it

    5ust returns all of the rows , or e*cuse me , all of the columns.

    !imilar functionality for model $uery sub5ects. If you change something in the

    $uery item in your data source $uery sub5ect" you can verify model ship" pick that

    up as well" or you could do it on a case by case basis by verify $uery sub5ect.

    &uestion , does creating a $uery sub5ect using your own !& have any e6ect on the

    performance/ #hen you are creating a data source $uery sub5ect you hand type in

    the !& , by default when you do your import it will be select star from table. -oucan modify that. -ou have a couple of options here. -ou can do native !& or you

    can enforce what we call Pass through !&. Pass through !& is typically used in

    cases where there is a speci)c database vendor" speci)c functionality that you want

    to leverage and our $uery engine may not be able to resolve it. !o you want to

    basically pass it through to the data source without us touching it. !o there are

    ways to do that. I think it is double curly braces around the synta* in the $uery

    sub5ect de)nition.

    It is de)nitely outlined in the , I think it is in the Framework Manager 8ser's 3uide. Iwas 5ust looking at it the other day. !o I think it is the curly braces" double curly

    braces on either side of the !& statement. ut de)nitely it is covered in the

    Framework Manager 8ser's 3uide" so you can get the synta* from there.

    &uestion , when should we consider using M versus a cube/

    3ood $uestion. eally a cube is really a static set of data at a moment in time. !o

    you build your cube and because it is already pre1built the records are already

    there" the aggregation is already done. For reporting purposes generally speaking

    are going to be very fast. Aaving said that" because it is static" if you have a

    re$uirement to get sort of updated results on a regular basis it may not be the best

    approach for you because it does re$uire the maintenance of rebuilding the cube

    periodically. !o if it was a case where you needed records" data that is up to date as

    of today" that might mean building your cube every day. !o that could be an

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    17/22

    additional maintenance task that you didn't want to take on. In terms of M"

    because we are sort of spinning the cube in memory and then $uerying that cube"

    the performance is going to be slower than a cube but it is actually accessing the

    data warehouse or the data source sort of as you are running it. !o the results that

    you are getting" your reports will be as up to date as the reporting data sources are.

    !o generally speaking that is one of the main bene)ts of using M or a cube.

    %he other thing is" with a cube you are talking about a static )le that is sitting on

    the server. !o there are some" depending on the platform you are on there are

    some limitations around that f you get into cubes that need to be over > 3igs letHs

    say" that could be an issue. !o M has the advantage there as well. %here really

    isn't any , you can hit larger data sets than a cube you are not limited to 5ust

    having a cube.

    0f course" with the performance issue I mentioned earlier with M" we spinning a

    cube in memory as you are running your reports. %he larger the data set" generally

    speaking you are going to see the reports" the processing time get longer as well.

    !o not to say that M has sort of an in)nite limit here.

    0kay" how to e*port the metadata such as screen tips for selected name space/

    -ou do have the ability to do an e*port of the string properties for $uery items. !o

    in other words the names" the screen tips" all of the string type properties that you

    would have for di6erent $uery items. eally the way that functionality was

    implemented was to ensure that people who want to use multi1lingual models have

    the ability to basically e*port those strings so that they can work with them in an

    easier interface than having to type in the multi1lingual strings by scrolling across in

    that window. !o you can e*port that to I believe it is C!@ that you can open in

    +*cel" so you would an +*cel spreadsheet and then you could add in the other

    names that you want there. !o you could leverage that ability to get an +*cel

    spreadsheet with all of the names and screen tips and descriptions of your $uery

    items.

    I think that that is de)nitely under one of the menu items so if you select name

    space and then went to , I bet it is under tools or actions , you would be able to

    e*port that to +*cel.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    18/22

    #hat information does Model (dvisor display beyond the current messages thrown

    out when a Framework Manager model is saved/

    #ell" Model (dvisor is going to" depending on the con)guration that you have" you

    can con)gure it to look for speci)c things or ignore speci)c things. !o what Model

    (dvisor will do is it will apply our best practices rules for things like relationships"

    cardinality" usage" things like that. !o if you don't want to see all of that you can

    pick speci)c topics that you are interested in and then it will e*port those messages

    accordingly. It gives it in a really nice kind of organi4ation because it gives you

    diagrams and you can launch out to help directly from there. !o" when you are

    doing a save it is going to try and verify the model and 5ust make sure that it is a

    valid Framework Manager model" you have a data source connection" things like

    that. #hen you are doing Model (dvisor it is actually doing a much more analytical

    pass through the model in identifying potential problems.

    !omething I mentioned in the slides was not all of these issues have to be

    addressed. %hese are 5ust areas that are worth a second look. !o when it alerts you

    about something it is a good idea to go and have a look and 5ust make sure that it is

    in deed what you intended to do there.

    ;e*t $uestion , what is the best practice when an upgrade of the model is neededand customer reports need to be updated/

    #ell there are really two pieces to that. 3enerally speaking our upgrade work

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    19/22

    should publish it out again. ike any upgrade" you should really do this in a

    development environment and then when you are satis)ed that things have

    upgraded correctly and they are all at the most recent version then you move it

    over to your &( or your 8(% environment and then from there to production.

    ;e*t $uestion , is there versioning capability in Framework Manager/

    %here is in B. and previous versions there is native support for source control. #e

    have support for D@isual !ource !afeE and DC@!E in B. and all previous versions of

    Framework Manager. Aaving said that" we did issue a deprecation notice in B.

    about our native support for those source control systems. !o as of the ne*t ma5or

    release of Framework Manager we won't have native support for those source

    control vendors.

    #e do" however" have a proven practices document" it is on our proven practices

    site and it describes how you would leverage any e*isting source control system.

    !o whatever you happen to be using" a Microsoft tool or whatever" they should all

    work e$ually well using this approach. It identi)es what )les you would need to

    check in and check out and how you would do that.

    !o as I say" as of the ne*t ma5or release we won't have the native source controlsupport" but we do have a proven practices document. It is available on the website

    that you can use as kind of a guideline for integrating with whatever source control

    system you are using.

    Can you give a brief discussion on settings and governors/

    3overnors really" as I mentioned earlier" are set on a package level so they are set

    there to sort of give hints to the $uery engine on how to react in certain situations.It is a good idea for a modeler if you are talking about a massive data set" it would

    be a good idea to set a $uery governor to limit the number of rows returned. -ou

    wouldn't want someone in $uery studio let's say to be able to drag $uery items onto

    the canvas and e*ecute a $uery that might return 9 million rows or 9 billion rows

    even. !o it is a good practice to set kind of realistic limits. !ome common limits

    that I see are limit it to say 9" rows or = million rows at the ma*imum $uery

    times is another one. -ou can set the $uery duration so that if a $uery is going to

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    20/22

    run longer than ten minutes" stop. 3enerally speaking those two settings go hand

    in hand. If you are going to be returning more than a million rows it is likely going

    to take more than = minutes. !o you probably don't want someone doing that. !o

    it is a good idea to set $uery governors like that in Framework Manager 5ust to make

    your system administrator happy so that he doesn't see a real hit on the server.

    Aow can we set drill ups and drill downs/

    #ell" in terms of modeling you are talking about analysis now. !o what you are

    talking about there would be dimensionally modeled relational source. !o what you

    would do is you would do your regular modeling because the foundation of any

    dimensionally modeled model is a good relational model. !o the same best

    practices would apply. !o do your import" create your model $uery sub5ects"

    organi4e your star schema and then in your dimension $uery sub5ects organi4e

    levels. 0nce you have your star schema created directly" we do have a nice

    automatic way of converting those to regular dimensions. It is from the right click

    menu you can select I think" if you 5ust organi4e them in the name space you can

    right click the name space and it will convert the dimension $uery sub5ects into

    regular dimensions and the fact $uery sub5ect into a measured dimension.

    From there you will have to do" you may have to do a little more work making sure

    that we got the levels correct. ut with a little bit of tweaking you should be in a

    pretty good position to publish out and then your users would be able to do drill ups

    and drill downs in a tool like &uery !tudio or (nalysis !tudio.

    !o the drill upGdrill down functionality comes for free in the studios once you have

    got a dimensionally modeled model.

    %here are a couple of $uestions about this presentation and whether or not it is

    going to be available. My understanding is there is going to be a thank you email

    sent out ne*t week and it should have a link to this presentation so that you can

    refer to it. If anyone would like to have a set of the slides" I would be glad to send

    that as well. I would have to send it in PF so I don't the movies would comes

    across" but as far as the content is concerned" if anyone is interested in getting a

    PF copy of the presentation" I would be glad to send that as well. !o you can 5ust

    reach out to me directly.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    21/22

    0ne more $uestion , I have a rather large model and I )nd it takes longer to publish.

    #hat is Framework Manager doing that causes this delay/

    #hat we are doing when you do a publish is we are going to analy4e the entire

    model and make sure that we include all of the ob5ects that you need. !o you can

    imagine when you are creating a package and let's say you have your database

    view and you have your business view and you have your presentation view" when

    you create your package you select your presentation" your name space , it has

    let's say ? or $uery sub5ects" that's all you want" or short cuts rather" and that

    is what you want to publish at the studios.

    !o what we are going to do is make sure that we also include the underlying model$uery sub5ects and the necessary database $uery sub5ects. !o you are not going to

    want the report authors to see them and we are not going to show them to them"

    but of course the $uery engine needs them in order to generate the $ueries. !o we

    need to scan through the model and )gure out what the dependencies are. !o this

    shortcut points to this model $uery sub5ect" points to this data source $uery sub5ect.

    (nd we will sort of scan through that and unwind the model and )gure out what

    ob5ects are needed and we will include them but keep them hidden.

    !o the larger the model the more time and resources it takes to scan through themodel to )gure that out. !o you will see if you have a very large model in the > to

    ? megabyte range you may see publish take several minutes whereas if you are

    using a small model" publish could happen. -ou could do a publish in a few seconds.

    I think we are going to stop there. %here are a few more $uestions but some of

    them are really of the type that I think kind of a back and forth dialogue would be in

    order. !o I know there are some $uestions here that I didn't get to and I apologi4e

    for that" we are running out of time. !o what I would like to do is 5ust invite anyone

    who has a $uestion that we didn't cover" please do send me an email and I would beglad to follow up with you oine and we can hopefully address your $uestion.

    !o I would 5ust like to thank everyone for 5oining. I en5oyed answering these

    $uestions and hopefully you all found the session worthwhile. (nd as I said" please

    do drop me a note by email if there are any $uestions that I did not cover today.

  • 8/10/2019 wa_tti_modeling_proven_practices_for_ibm_cognos_framework_manager.doc

    22/22