Wednesday, March 7, 2012

Repository query to fetch User groups and users in it.

0 comments
Can somebody give me PowerCenter Repository query(Oracle/SQLServer) to fetch below;
1. Fetch a specific User group and its members. Eg: Group Grp1 has members usr1, usr2, usr3, usr4, and usr5.
2. Fetch a specific Relational connection name and who has what kind of access. Eg: Users usr1,usr2, and usr3 has R/W/X permission on Rel_Conn1. Or Groups grp1, grp2, and grp3 has R/X permission on Rel_Conn1

I tried OPB_USER_GROUP table, but couldn't find relevant information.


Repository query to fetch User groups and users in it.

hope this works



--Find the group id

select

OPB_GROUPS



--find the users in the group



select * from

OPB_USERS

where user_id in(select user_id from OPB_USER_GROUPS where GROUP_ID=<GRP_ID>)

* from INFAPCREPO8.
newer post

Tuesday, March 6, 2012

FEATURED: Informatica 9 - How does it change the dynamics of IT Projects?

0 comments
In my opinion, with the launch of Informatica 9, it looks like the role of the developers is brought down considerably as the Business users themselves are able to customize the data objects to their need. The development effort is also coming down, as the Logical Data Objects created can be deployed across any service like Virtual SQL Federator Service or a Web service, etc. Flexibility is alright, but what is the cost involved in training the Business users to customize the delivered objects? What is the change that is brought about in Informatica's flagship product, PowerCenter? Is version 9 mainly focused on the requirements of "Executive Dashboard"? If so, does it have any impact on other kinds of projects like Data Migration, the focus of which is not related to any reporting? Do you really think Informatica 9 can reduce the IT project costs by reducing the effort? Finally, what do you think about Informatica 9?


---
This discussion is part of Toolbox for IT's new Featured Discussion program, which offers open-ended discussion group conversations that enable participants to engage around issues that are slightly broader than traditional group message topics. If you're interested in submitting a topic for a future Featured Discussion, or if you would like to lead a future Featured Discussion, please contact moderator at ittoolbox dot com.


This product is still in Beta Stage and many of their (Informatica) clients haven't used this version yet. Having said that my observation on this version 9 is as follows.

Business/IT Collaboration:

Requirement - Design - Development can be done thru informatica version 9 suite that contains Informatica Analyst and Developer.
Informatica Analyst would replace our existing word/pdf documents, excel spreadsheet and any customized tools which are used widely by our business users.

Even though during the launch presentation they have shown how easy the tool is but in reality, most of the business users will hesitate to move towards using informatica analyst.

Consider the current scenario. Business have an requirement - BA's analyze those - create specifications - Developers coordinate with business analyst and they develop the application and roll out. We have 3 different groups involved in this process and each of them have their unique roles and responsibilities. Apart from these people we have infrastructure folks who help us to achieve our requirement.

In the version 9 scenario, Business user can create their own requirement using Informatica Analyst Tool and developers can develop those using Developer Tool. This would eliminate the involvement for business analyst role. This would be impossible to achieve because not all business users can act as an business analyst.

If you want to launch this product in any financial institutions most of the employees will resist because this would encourage employer to lay off most of their BA's.

Pervasive Data Quality:

In reality we can't achieve this 100 % data quality. The reason is very simple 'Too many cooks spoil the broth'. Especially for a datawarehouse you will be receiving data from many internal/external systems it's very very difficult to achieve 100 % quality because there are too many people,process and apps involved in this process.

SOA-Based Data Services :

This is a good feature where by we can publish our data as a web service.

I don't know about the impact of this release on power center. Version 9 launch does not speak about existing informatica products. 

I think you are reading too much into it. Since the beginning of time (or at least since PC's became prevalent in the business environment) vendors have cooked up tools that 'empower the business and circumvent traditional IT approaches'. There is nothing wrong with that, in fact, I'm all for it.

However, the reality is, these tools are only as easy and productive as the technical environment behind it. The information environment in any business is very complex and requires architecture, planning, design and delivery to make sense of it. This requires strong technical skills as well as an understanding of the business.

Business people don't want to be technicians... they don't want to be spending their time burried in a tool defining and testing rules. What something like INFA 9 does is blur the boundaries between IT and the Business. This is good as there shouldn't have been boundaries in the first place (that is why there are so many screwed up systems out there).

What is does mean is that IT and Business need to, and should, work closer together. One is not replacing the other.
newer post

New Features of Informatica 9.0

0 comments
Following are some new features introduced in Informatica 9.0 :

1.  New Client tools:

Informatica 9 includes the Informatica Developer and Informatica Analyst client tools.


The Informatica Developer tool is eclipse-based and supports both data integration and data quality for enhanced productivity. The Informatica Analyst tool is a browser-based tool for analysts, stewards and line of business managers.  This tool supports data profiling, specifying and validating rules (Scorecards), and monitoring data quality.


2. Informatica Administrator:

The PowerCenter Administration Console has been renamed the Informatica Administrator.


The Informatica Administrator is now a core service in the Informatica Domain that is used to configure and manage all Informatica Services, Security and other domain objects (such as connections) used by the new services.
The number of objects stored in the domain has increased to accommodate these new requirements.

3.  Session Log size:

You can limit the size of session logs for real-time sessions. You can limit the size by time or by file size. You can also limit the number of log files for a session.

4. Lookup Transformation:

  > Cache updates


     You can update the lookup cache based on the results of an expression. When an expression is true, you can add to or update the lookup cache. You can update the dynamic lookup cache with the results of an expression.

  > Database deadlock resilience
      
      In previous releases, when the Integration Service encountered a database deadlock during a lookup, the session failed. Effective in 9.0, the session will not fail. When a deadlock occurs, the Integration Service attempts to run the last statement in a lookup. You can configure the number of retry attempts and time period between attempts.

  > Multiple rows return.

     You can configure the Lookup transformation to return all rows that match a lookup condition. A Lookup transformation is an active transformation when it can return more than one row for any given input row.


 > SQL overrides for uncached lookups

   In previous versions you could create a SQL override for cached lookups only. You can create an SQL override for uncached lookup. You can include lookup ports in the SQL query.
newer post

Breaking News—Informatica Launches Version 9 of its Data Integration Platform

0 comments
Informatica today announced version 9 of its data integration platform with the theme of "Enabling the Data-Driven Enterprise." The Informatica platform is a comprehensive offering that provides for enterprise data integration, cloud data integration, B2B data exchange, and data quality across the whole enterprise. Major new features in version 9 of the platform focus on the areas of SOA-based data services, pervasive data quality, and Business-IT collaboration.
Arvind Parthasarathi, vice president of product management for Informatica, tells 5 Minute Briefing that "the key elements of building a data-driven enterprise are the ability to provide relevant, trustworthy, and timely data to the organization. Informatica 9 enables all three of these through the feature areas of business-IT collaboration, data quality, and multi-modal data provisioning services. Features in version 9 that enable Business-IT collaboration include the ability to provide users with views into their data based on the way they are used to seeing it. This allows business users to participate in the entire process of getting the data they want. Data quality is provided via capabilities such as highly accurate global matching and address cleansing with domain aware pre-built rules and reference data.
Regarding multi-modal data provisioning services, Parthasarathi continued by saying "we provide the right data to users at the right time based on their business needs. The right data means data in its most relevant form for its intended use including various data types and data technologies. The right time can vary according to the amount of data latency any given business process can tolerate and Informatica offers numerous data delivery styles and technologies in a sliding-scale fashion to meet all various needs. This includes batch ETL, real-time change data capture, and federated query capabilities."
According to Informatica, version 9 is the single most important release in the company's history, and is a comprehensive solution for solving the challenges of managing data across the enterprise. With Informatica 9, companies can lower the costs and time to discover data and deliver it the way it is needed. They can also identify the bad data that is impacting business decisions and fix it faster. This is facilitated by Informatica's support for all data domains and all applications across all geographies. Lastly, version 9 enables the control and management of data wherever it is located, whether that be on-premise, in the cloud, with partner networks or any combination of these.
newer post

Deliver Complex Hierarchical Data Natively with Advanced XML Data Integration

0 comments
The Informatica PowerCenter Advanced XML Data Integration Option enables real-time access to hierarchical data otherwise locked in XML files and messages. This option handles all XML data integration challenges, including integration complexity, visibility into hierarchical data, high-performance requirements, and maintenance related to frequent changes. With this XML data integration option, your IT organization can natively access, parse, and create any XML file based on any XSD—including data locked in complex schemas, deep hierarchical structures, and large XML files.

    Easily incorporate complex XML data into reports and analyses to deliver a more comprehensive view of data to the business
    Improve business responsiveness and agility in competitive markets by simplifying the adoption of frequent changes to XML schemas
    Increase IT productivity and reduce costs by natively supporting XML data integration, eliminating the need for hand coding and allowing collaboration between business and IT

Informatica PowerCenter Advanced XML Data Integration Option Key Features

    Native support for all schema features, including complex XSD features such as xsi:type, to streamline XML data integration
    Support for recursive structures and large schemas with deep hierarchies to streamline XML data integration
    Integrated, codeless, visual environment for performing XML data integration with virtually unlimited access to any XML/XSD file
    Simple drag-and-drop Excel interface for business users to easily transform complex hierarchical XML data into database and data warehouse structures
newer post

Monday, March 5, 2012

Structure, Semantics and Master Data Models

0 comments
Looking back at some of my Informatica Perspectives posts over the past year or so, I reflected on some common themes about data management and data governance, especially in the context of master data management and particularly, master data models. As both the tools and the practices around MDM mature, we have seen some disillusionment in attempts to deploy an MDM solution, with our customers noting that they continue to hit bumps in the road in the technical implementation associated with both master data consolidation and then with publication of shared master data.

Almost every issue we see can be characterized into one of three buckets:

1)     Reference data issues, associated with misalignment of commonly-used master data sets, conceptual data sets, values domains, and various mappings across those ideas. For example, one business application defined US States to include only the 50 states and the District of Columbia, while other applications will include Puerto Rico, the Virgin Islands, Guam, and Samoa as values within the US States data domain.

2)     Structure issues, which often relate to differences in the source data models for similar data entity concepts (at the data element, table, and entity relationship levels) as well as differences between the source models, the master data models, and the downstream applications.

3)     Semantic issues, in which isolated “meaning” differences that are specific to an application cause problems in aligning data entity relationships into a common model. As an example, one of our clients is trying to create a master customer database, except that one source is the marketing application, and while the items in that data set are called “customers,” many are actually just “prospects” and have not yet committed to purchasing a product.

These are actually three sides of the same coin (funny looking coin, though ;-) ) that reflect program implementation stalls due to master data modeling issues. It turns out there are two “philosophical” approaches to master data modeling. On the one hand we have the “pre-packaged” approach, in which the MDM vendor provides a set of core data models for each common data entity such as customer, vendor, contract, product, etc. These models are often derived from universal-style, hierarchical/object-oriented models, and are tweaked to fit into the architecture of the deployment site. This approach basically comes bundled with a set of defined services for accessing and updating master data attributes and objects. In the other approach, the characteristics of (and relationships among) master data models are driven by the specific needs of the business (and is consequently referred to as the “business model-driven” approach). In my next post I will provide some additional details about the differences between the approaches. I will also be talking about this on a March 20 TDWI Webinar, “Is Your Approach to Modeling MDM Fixed or Flexible?”
newer post

New Features of Informatica-9

0 comments
1. Informatica 9 supports data integration for the cloud as well as on premise. You can integrate the data in cloud applications, as well as run Informatica 9 on cloud infrastructure.

2. Informatica analyst is a new tool available in Informatica 9.

3. There is architectural difference in Informatica 9 compared to previous version.

4. Browser based tool for business analyst is a new feature.

5. Data steward is a new feature.

6. Allows unified administration with a new admin console that enables you to manage power centre and power exchange from the same console.

7. Powerful new capabilities for data quality.

8. Single admin console for data quality, power centre, power exchange and data services.

9. In Informatica 9, Informatica data quality (IDQ) has been further integrated with the Informatica Platform and performance, manageability and reusability have all been significantly enhanced.

10. The mappings rules are shared between the browser based tool for analysts and the eclipse based development leveraging unified metadata underneath.

11. The data services capabilities in Informatica 9 , both over sql and web services ,can be used for real time dash boarding.

12. Informatica data quality provides world wide address validation support with integrated geocoding.

13. The ability to define rules and view and run profiles is available in both the Informatica developer (Thick client) and Informatica analyst (browser based tool-Thin client).these tools sit on a unified metadata infrastructure. Both tools incorporate security features like authentication and authorization ensuring..

14. The developer tool is now eclipse based and supports both data integration and data quality for enhanced productivity. It provides browser based tool for analysts to support the types of tasks they engage in, such as profiling data, specifying and validating rules & monitoring data quality.

15. There will a velocity methodology. Soon it’s going to introduce on I9.

16. Informatica has the capability to pull data from IMS, DB2 on series and series and from other several other legacy systems (Mainframe) environment like VSAM, Datacom, and IDMS etc.

17. There are separate tools available for different roles. The Mapping architect for Vision tool is designed for architects and developers to create templates for common data integration patterns saving developer’s tremendous amount of time.

18. Informatica 9 does not include ESB infrastructure.

19. Informatica supports open interfaces such as web services and can integrate with other tools that support these as well including BPM tool.

20. Informatica 9 complements existing BI architectures by providing immediate access to data through data virtualization, which can supplement the data in existing data warehouse and operational data store.

21. Informatica 9 supports profiling of Mainframe data. Leveraging the Informatica platform’s connectivity to Mainframe sources.

22. Informatica 9 will continue support feature of running the same workflow simultaneously.

23. Eclipse based environment is build for developers.

24. Browser based tool is a fully functional interface for business analysts.

25. Dashboards are designed for business executives.

26. There are 3 interfaces through which these capabilities can be accessed. Analyst tool is a browsed tool for analyst and stewards. Developers can use the eclipse based developer tool. Line of business managers can view data quality scorecards.
newer post

Informatica 9 New Features

0 comments
Power center 9 new features.

PowerCenter Effective in version 9.0, PowerCenter contains new features and enhancements.

Integration Service

Session log file rollover. You can limit the size of session logs for real-time sessions. You can limit the size by time or by file size. You can also limit the number of log files for a session. 

Licensing

Enforcement of licensing restrictions. PowerCenter will enforce the licensing restrictions on the number of CPUs and repositories. 

Lookup Transformation

Cache updates. You can update the lookup cache based on the results of an expression. When an expression is true, you can add to or update the lookup cache. You can update the dynamic lookup cache with the results of an expression.

Database deadlock resilience. In previous releases, when the Integration Service encountered a database deadlock during a lookup, the session failed. Effective in 9.0, the session will not fail. When a deadlock occurs, the Integration Service attempts to run the last statement in a lookup. You can configure the number of retry attempts and time period between attempts.

Multiple rows return. You can configure the Lookup transformation to return all rows that match a lookup condition. A Lookup transformation is an active transformation when it can return more than one row for any given input row.

SQL overrides for uncached lookups. In previous versions you could create a SQL override for cached lookups only. You can create an SQL override for uncached lookup. You can include lookup ports in the SQL query.


Mapping Architect for Visio

New mapping objects. You can include the following objects in a mapping template:  Pipeline Normalizer transformation

Custom transformation

PowerExchange source definition

PowerExchange target definition


You can also create a mapping template from a mapping that contains these objects.

Shortcuts. You can configure a transformation to use a shortcut. You can create a mapping template from a mapping that contains shortcuts to reusable transformations.


SQL Transformation

Auto-commit for connections. You can enable auto-commit for each database connection. Each SQL statement in a query defines a transaction. A commit occurs when the SQL statement completes or the next statement is executed, whichever comes first.

Exactly-once processing. The Integration Service provides exactly-once delivery of real-time source messages to the SQL transformation. If there is an interruption in processing, the Integration Service can recover without requiring the message to be sent again. To perform exactly-once processing, the Integration Service stores a set of operations for a checkpoint in the PM_REC_STATE table.

Passive transformation. You can configure the SQL transformation to run in passive mode instead of active mode. When the SQL transformation runs in passive mode, the SQL transformation returns one output row for each input row.


XML Transformation

XML Parser buffer validation. The XML Parser transformation can validate an XML document against a schema. The XML Parser transformation routes invalid XML to an error port. When the XML is not valid, the XML Parser transformation routes the XML and the error messages to a separate output group that you can connect to a target.


Starting from Version 9 , powercenter admin console is called as informatica administrator.

Informatica Administrator (PowerCenter Administration Console) Effective in version 9.0, the PowerCenter Administration Console is renamed to Informatica Administrator. The Informatica Administrator has a new interface. Some of the properties and configuration tasks from the PowerCenter Administration Console have been moved to different locations in Informatica Administrator. The Informatica Administrator is expanded to include new services and objects.

Analyst Service. Application service that runs Informatica Analyst in the Informatica domain. Create and enable an Analyst Service on the Domain tab of Informatica Administrator. When you enable the Analyst Service, the Service Manager starts Informatica Analyst. You can open Informatica Analyst from Informatica Administrator.

Data Integration Service. Application service that processes requests from Informatica Analyst and Informatica Developer to preview or run data profiles and mappings. It also generates data previews for SQL data services and runs SQL queries against the virtual views in an SQL data service. Create and enable a Data Integration Service on the Domain tab of Informatica Administrator.

Model Repository Service. Application service that manages the Model repository. The Model repository is a relational database that stores the metadata for projects created in Informatica Analyst and Informatica Designer. The Model repository also stores run-time and configuration information for applications deployed to a Data Integration Service. Create and enable a Model Repository Service on the Domain tab of Informatica Administrator.

PowerExchange Listener Service. Manages the PowerExchange Listener for bulk data movement and change data capture. The PowerCenter Integration Service connects to the PowerExchange Listener through the Listener Service.

PowerExchange Logger Service. Manages the PowerExchange Logger for Linux, UNIX, and Windows to capture change data and write it to the PowerExchange Logger Log files. Change data can originate from DB2 recovery logs, Oracle redo logs, a Microsoft SQL Server distribution database, or data sources on an i5/OS or z/OS system.

Connection management. Database connections are centralized in the domain. You can create and view database connections in Informatica Administrator, Informatica Developer, or Informatica Analyst. Create, view, edit, and grant permissions on database connections in Informatica Administrator.

Deployment. You can deploy, enable, and configure deployment units in the Informatica Administrator. Deploy Deployment units to one or more Data Integration Services. Create deployment units in Informatica Developer.

Monitoring. You can monitor profile jobs, scorecard jobs, preview jobs, mapping jobs, and SQL Data Services for each Data Integration Service. View the status of each monitored object on the Monitoring tab of Informatica Administrator.
newer post

Architectural difference between Informatica 9 and Informatica 8.x

0 comments
Lookup Transformation: Cache updates. We can update the lookup cache based on the results of an expression. When an expression is true, We can add to or update the lookup cache. We can update the dynamic lookup cache with the results of an expression.
Multiple rows return: We can configure the Lookup transformation to return all rows that match a lookup condition. A Lookup transformation is an active transformation when it can return more than one row for any given input row.
SQL overrides for uncached lookups: In previous versions We could create a SQL override for cached lookups only. We can create an SQL override for uncached lookup. We can include lookup ports in the SQL query.
Database deadlock resilience: In previous releases, when the Integration Service encountered a database deadlock during a lookup, the session failed. Effective in 9.0, the session will not fail. When a deadlock occurs, the Integration Service attempts to run the last statement in a lookup. We can configure the number of retry attempts and time period between attempts.
SQL transformation: Auto-commit for connections. We can enable auto-commit for each database connection. Each SQL statement in a query defines a transaction. A commit occurs when the SQL statement completes or the next statement is executed, whichever comes first.
Session Log files rollover: We can limit the size of session logs for real-time sessions. We can limit the size by time or by file size. We can also limit the number of log files for a session.
Passive transformation: We can configure the SQL transformation to run in passive mode instead of active mode. When the SQL transformation runs in passive mode, the SQL transformation returns one output row for each input row.
XML transformation: XML Parser buffer validation. The XML Parser transformation can validate an XML document against a schema. The XML Parser transformation routes invalid XML to an error port. When the XML is not valid, the XML Parser transformation routes the XML and the error messages to a separate output group that We can connect to a target.
Model Repository Service: Application service that manages the Model repository. The Model repository is a relational database that stores the metadata for projects created in Informatica Analyst and Informatica Designer. The Model repository also stores run-time and configuration information for applications deployed to a Data.
Integration Service: Create and enable a Model Repository Service on the Domain tab of Informatica Administrator.
Connection management: Database connections are centralized in the domain. We can create and view database connections in Informatica Administrator, Informatica Developer, or Informatica Analyst. Create, view, edit, and grant permissions on database connections in Informatica Administrator.
Deployment: We can deploy, enable, and configure deployment units in the Informatica Administrator. Deploy Deployment units to one or more Data Integration Services. Create deployment units in Informatica Developer.
Monitoring: We can monitor profile jobs, scorecard jobs, preview jobs, mapping jobs, and SQL Data Services for each Data Integration Service. View the status of each monitored object on the Monitoring tab of Informatica Administrator.
newer post

Monday, February 27, 2012

Make room for data

0 comments
mobilkom austria uses multi-value compression to economically increase table size and boost performance.
Given enough time, most organizations will reach a point when they wonder how their Teradata systems can possibly take in any more data. Buying new hardware can solve this problem—but that may be unnecessary.
One company found a way to more readily accommodate its growing volumes of data. Teradata Magazine spoke with Dietmar Trummer, senior IT architect at mobilkom austria, about its use of Teradata multi-value compression. Trummer explained how he was able to free space, increase performance and save money, all without reducing service.

Q: What prompted you to investigate using Teradata’s multi-value compression?

A: Starting at the end of 2006, we anticipated performance issues in the near future due to shortage
of free disk space.


Our users had data analysis results and reports to deliver on time, so in my role as a Teradata system user and developer of smaller data marts, I tried to figure out how to cope with this disk space storage issue.

Q: What approaches did you consider?

A: A Management and administrators at mobilkom austria considered several options: buy new hardware, archive data to external storage or remove indexes. We limited that to these choices:

    Reduce redundant data by deleting specialized data marts. This required developing more complex queries to rebuild the logic of the data marts.
    Aggregate data and skip the details, or reduce history by removing old data. We would lose information and would have to reduce our internal service portfolio.
    Optimize the table definitions based on Teradata technology. This option offers the use of size-optimal data types, primary indexes with optimal table distribution and multi-value compression with optimal size impact.

Q: Why did you select Teradata’s multi-value compression approach?

A: First of all, we didn’t want to develop more complex queries. Second, we didn’t want to reduce
our service portfolio.

I was looking for a solution that had the least possible influence on the daily work of the users and developers. Optimizing table definitions appeared to be worth investigating.

To be honest, the multi-value compression approach was the most interesting. It promised a high potential and also delivered a technical and mathematical challenge. Besides, I had some prior experience implementing the compression approach.

Two years ago during the development of a simple data mart, I had to store a large amount of intermediate data in a table. The space in my staging database was insufficient, so I needed to find a way to reduce the table space.

However, with multi-value compression I could fit my table into the staging database in a short time, without the help of an administrator.

One year later, I adapted what I learned from this experience and developed a method to ease our new storage problems using multi-value compression.
Q: Is this code for using compression as simple as it looks?

 CREATE MULTISET TABLE dwh_ua.uaf_contract ( phone_id INTEGER NOT NULL, call_mode_code CHAR(1) COMPRESS (‘A’,’P’,’S’), source_table_id SMALLINT NOT NULL COMPRESS (1,4,10), charge_usage DECIMAL(18,4) COMPRESS (0.0000), ... ) PRIMARY INDEX (phone_id)

A: Yes, it is. We optimized our biggest table using multi-value compression: 1TB without compression; 480GB with manual (not optimized) compression; 370GB with optimized compression. The sample code is actually a fraction of the table definition.

That’s the simple part—the challenging part is how to get the values for optimized compression.
Q: What about the importance of data analysis and finding the break-even point of compression? How does multi-value compression work, and how do you find that break-even point?

A: Unlike other databases, the Teradata Database compresses specific user-defined values to zero space. That sounds like magic but, of course, it isn’t. The idea is to reduce the row size of many rows by a large amount, and to enlarge the row size of all rows by a small amount.
image

Click to enlarge

The code that follows and the corresponding row storage table [see table 1] illustrate how this works: We observed the compression of a single column. All rows with a call_mode_code value contained in the compress list (‘A,’ ‘P’ or ‘S’) skipped the storage for this column in the row data. The compressed values are stored as binary code, and the column was reduced to zero space. Consequently, the rows got smaller. In table 1, the binary code “00” indicates that the value is stored in the row data.

 … call_mode_code CHAR(1) COMPRESS (‘A’,’P’,’S’), … 2 bit: ‘A’ = 01, ‘P’ = 10, ‘S’ = 11

The binary code is also used in the presence bits to indicate if the values are not compressed. If the table contains no call_mode_code value of ‘A,’ ‘P’ or ‘S,’ small amounts of storage are added in the presence bits and the rows get slightly larger. This explains why it is important to know the values contained in your table.

In summary, if you use compression, all rows—regardless of whether the column value is compressed—have to add the presence bits to their row storage.

Then, the question arose: How can we use this information to find the optimal compression list for a column’s table?

The answer is detailed mathematically, but the principle is not very complex: The values that occur more frequently are more likely to be added to the compression list. Therefore, we had to fill the compression list with the most frequently occurring values. The break-even point is reached when the addition of a new value to the list will not result in a further decrease of the column’s total space consumption.

But be aware that this equation is based only on the static point of view. Data changes over time, so analysis about volatility of data is also necessary and has to be taken into consideration when finding the best compression list.
Q: What kinds of data gain the best compression by setting “obvious” compression values? Are there problems using this technique?

A: That’s difficult to generalize because we experienced different and unexpected kinds of data with great compression performance. Of course columns with large data types have a better compression ratio than those with small data types. Also, columns that contain a few very frequent values gain good compression. These values might be words in natural language, flags, categories, status and years.

But data columns that contain measures can also be a good source for compression—especially default values, zeros and values that are near the most frequent value of a Gaussian or Poisson distributed column.

The problem with what might be considered “obvious” compression values is that it is difficult to find the break-even point—i.e., the optimal compression list—without data analysis. We frequently experienced that manual compression with no data analysis often leads to compression lists that are too large. In these cases, too many values are used for compression, which can lead to “over-compression.” Less would have been better.
Q: You described actual results when using multi-value compression. How much table scan performance improvement did you see? Do you have examples to share?

A: We didn’t analyze the table scan performance in a way that would enable me to present a percentage of performance improvement. Our result is based on the theoretical fact that the table scan performance is determined by the table size—and by our users’ experiences.
image

Click to enlarge

Nevertheless, we conducted experiments to check a potential negative performance impact caused by “decoding” the compressed values during querying. The results showed that, on the one hand, we could not find a negative performance impact; on the other hand, the table scan performance improvement is directly proportional to the space reduction.
Q: How large of a saving in data size did you see in your results?

A: The bar chart demonstrates a graphical representation of different compression scenarios of a single column. [See figure.] The horizontal axis breaks down the number of presence bits that must be used to code the compression values, and the vertical axis shows the size of the column in megabytes.

The red portion of each bar displays how much space will remain after the compression, and the green portion indicates how much space would be freed. Combined, the size of this column without compression is about 760MB.
image

Click to enlarge

The bars, from left to right, indicate how much space would be freed when compressing:

    First column = 1 compression bit: the most frequent value
    Second column = 2 compression bits: the most and second-most frequent value
    Third column = 2 compression bits: the most, second-most and third-most frequent value
    Thirteenth column (the rightmost bar in the chart) = 4 compression bits: in this case all occurring values

Notice that the first compression scenario is optimal—the size of this column would be reduced to about 50MB.

Table 2 displays the data analysis results in textual form. The recommendation of the tool is to compress one value (= 1 compression bit), which then generates the corresponding compress clause.

This table is a real example from our biggest table. You can see in row 7 of the table that multi-value compression was used. In this case the developer manually set a large compress list, which resulted in a column size of about 290MB as shown in cell C7. This is one-third the size without compression, indicated in cell C6, but nearly six times the size of the optimally compressed column that appears in cell C8.
Q: Beyond the space savings, what other benefits and cost savings
did you experience?

A: The cost savings stemmed directly from the fact that we didn’t need to buy new hardware or perform other actions that would result in indirect costs, such as reducing our service portfolio.

An indirect benefit was that the overall performance of our system was stabilized because we could raise the level of free storage to the recommended percentage. Multi-value compression had its part in this. It also played a part in other actions, like archiving.
Q: Have there been any impacts on your end users or application developers since you implemented compression? Have they had to change anything?

A: The end users who get our reports and analysis results didn’t realize that anything had changed, except that we were able to consistently meet their service level agreements because of our stabilized system performance.

What is interesting is the impact this procedure has on our developers, like me. The method was used with the intention to free some space in a one-time action. The administrators would analyze our biggest tables and change their table definitions to optimize compression.

Today all application developers in our unit know how to use it. During development of large to medium-sized data marts, a procedure is used to optimize bigger tables; therefore, the tables go into production with optimized compression. What is important is that the developers know about the pitfalls, such as data volatility, which can make a perfect compression change over time to a bad compression.

Also, our administrators didn’t confine themselves to optimizing just the biggest tables. They optimized medium-sized and even small tables. This is why we have approximately 3,000 optimized tables!
newer post
newer post older post Home