Search for:
Empowering Organizations Through Data Literacy, Governance, and Business Literacy
In my journey as a data management professional, I’ve come to believe that the road to becoming a truly data-centric organization is paved with more than just tools and policies — it’s about creating a culture where data literacy and business literacy thrive.  Data governance, long regarded as a compliance-driven function, is now the backbone […]


Read More
Author: Gopi Maren

Identifying and Addressing Data Overload
Increased data generation requires modern businesses to manage vast volumes of information. All this data holds immense potential for insights and informed decision-making, but its value depends on effective utilization. Without the right tools, frameworks, and strategies, even established companies risk being overwhelmed by data overload.  Let’s take a closer look at data overload and […]


Read More
Author: Irfan Gowani

Crossing the Data Divide: A Case for Data Leaders Embracing Process Modeling
In the early days of enterprise data and business systems, process modeling and data modeling went hand-in-hand. It was standard practice to design processes and data structures simultaneously, ensuring a seamless alignment between how work was done and how information was captured, stored, and used.   Tools like flowcharts, data flow diagrams, and entity-relationship diagrams were […]


Read More
Author: John Wills

The Brave New World of Embedded BI and Analytics
Your business users probably have their favorite legacy systems, best-of-breed solutions, and business apps. When your IT and management team introduce a new software application, it can often be seen as a nuisance or, at best, a tool whose day-to-day workflow value is not offset by the task of learning how to navigate the software.  […]


Read More
Author: Kartik Patel

Data Professional Introspective: Your Organization Can’t Create an EDM Strategy
Some countries successfully create long-term strategic plans. For example, China’s first 100-year plan was aimed at the elimination of extreme poverty by 2020. In 1980, there were 540M people living in extreme poverty; by 2014, there were only 80 million. The second 100-year plan, targeted for 2050, calls for achieving 30% of global GDP, to […]


Read More
Author: Melanie Mecca

Decentralized, Centralized, and Federated Data Governance
In my discussions with CIOs over the last several years, they have repeatedly told me that they strongly dislike traditional data governance. And asked at times, could they just be data custodians. When I asked why, they said they either forced it top-down on their organization, and everyone disliked them for doing it; or, IT […]


Read More
Author: Myles Suer

All in the Data: Too Soon for Q Governance?
Quantum computing, with its groundbreaking capabilities, is poised to redefine how organizations solve complex problems and innovate in ways previously unimaginable. As industries begin to explore its potential, a pressing question emerges: Are we ready to govern this new frontier? Much like the evolution of AI necessitated AI governance, quantum computing demands its own variation […]


Read More
Author: Robert S. Seiner

Digital Transformation in Insurance: Overcoming Legacy Challenges
The insurance industry is experiencing a digital revolution. As customer expectations evolve and new technologies emerge, insurers are under increasing pressure to undergo digital transformation. However, legacy systems and outdated processes present significant hurdles for many companies. This article will explore the challenges of digital transformation in insurance, highlighting real-world cases and offering strategies to […]


Read More
Author: Christine Haskell

The Book Look: AI & The Data Revolution
I am just going to start off by saying that I am a Laura Madsen fan. Her writing style combines laugh-out-loud humor with practical experience, making her books both enjoyable and educational. Even some of the book’s subheadings, like “Let’s Not Do Dumb Stuff Faster” and “Kwality Is Job One,” made me laugh out loud.  […]


Read More
Author: Steve Hoberman

Building Robust Cybersecurity Frameworks with Outdated Infrastructure
Infrastructure security is a leading concern for cybersecurity professionals today. Cybercriminals are targeting industrial systems with increasing frequency, and these attacks can have devastating consequences. Further complicating the issue is the fact that many communities rely on outdated technology, leaving them vulnerable to disruption.  Understanding the Security Challenges of Legacy Systems  Although many heavy industries […]


Read More
Author: Ellie Gabel

From Chaos to Clarity: The Stealth Guide to Data Governance Success
In today’s fast-paced business world, data governance often feels like an insurmountable challenge. While teams focus on product development, innovation, and revenue generation, governance can seem like an abstract and expensive luxury. But as data volumes surge and complexity grows, the absence of proper governance creates a widening gap. Organizations are missing critical insights and […]


Read More
Author: Subasini Periyakaruppan

The Data-Centric Revolution: Putting Knowledge Into Our Knowledge Graphs
I recently gave a presentation called “Knowledge Management and Knowledge Graphs” at a KMWorld conference, and a new picture of the relationship between knowledge management and knowledge graphs gradually came into focus. I recognized that the knowledge graph community has gotten quite good at organizing and harmonizing data and information, but there is little knowledge […]


Read More
Author: Dave McComb

The Challenges of Data Migration: Ensuring Smooth Transitions Between Systems
Data migration — the process of transferring data from one system to another — is a critical undertaking for organizations striving to upgrade infrastructure, consolidate systems, or adopt new technologies.   However, data migration challenges can be very complex, especially when doing large-scale data migration projects.   Duplicate or missing data, system compatibility issues, data security problems, […]


Read More
Author: Ainsley Lawrence

Legal Issues for Data Professionals: In AI, Data Itself Is the Supply Chain
Data is the supply chain for AI. For generative AI, even in fine-tuned, company-specific large language models, the data that is input into training data comes from a host of different sources. If the data from any given source is unreliable, then the training data will be deficient and the LLM output will be untrustworthy. […]


Read More
Author: William A. Tanenbaum and Isaac Greaney

Cybersecurity Strategies for Insurers: Protecting Data in the Digital Age
We’ve become numb to the headlines. Data breaches happen almost daily, making cybersecurity a top priority for insurers. With its vaults of personal and financial data, the insurance industry is a prime target for cybercriminals. This blog post will explore effective cybersecurity strategies for insurers, highlighting real-world cases and spotlighting new technologies reshaping the cybersecurity […]


Read More
Author: Christine Haskell

Becoming a Citizen Data Scientist Can Improve Career Opportunities
When a business decides to undertake a data democratization initiative, improve data literacy, and create a role for citizen data scientists, the management team often assumes that business users will be eager to participate, and that assumption can cause these initiatives to fail.  Like every other cultural shift within an organization, the management team must […]


Read More
Author: Kartik Patel

What to Expect in AI Data Governance: 2025 Predictions


In 2025, preventing risks from both cyber criminals and AI use will be top mandates for most CIOs. Ransomware in particular continues to vex enterprises, and unstructured data is a vast, largely unprotected asset. AI solutions have moved from experimental to mainstream, with all the major tech companies and cloud providers making significant investments in […]

The post What to Expect in AI Data Governance: 2025 Predictions appeared first on DATAVERSITY.


Read More
Author: Krishna Subramanian

User-Friendly External Smartblobs Using a Shadow Directory

I am very excited about the HCL Informix® 15 external smartblob feature.

If you are not familiar with them, external smartblobs allow the user to store actual Binary Large Object (blob) and Character Large Object (clob) data external to the database. Metadata about that external storage is maintained by the database.

Notes: This article does NOT discuss details of the smartblobs feature itself, but rather proposes a solution to make the functionality more user-friendly. For details on feature behavior, setup, and new functions, see the documentation.

At the writing of this blog, v15.0 does not have the ifx_lo_path function defined, as required below.  This has been reported to engineering.  The workaround is to create it yourself with the following command:

create dba function ifx_lo_path(blob)
  returns lvarchar
  external name '(sq_lo_path)'
  language C;

This article also does not discuss details of client programming required to INSERT blobs and clobs into the database.

The external smartblob feature was built for two main reasons:

1. Backup size

Storing blobs in the database itself can cause the database to become extremely large. As such, performing backups on the database takes an inordinate amount of time, and 0 level backups can be impossible. Offloading the actual blob contents to an external file system can lessen the HCL Informix backup burden by putting the blob data somewhere else. The database still governs the storage of, and access to, the blob, but the physical blob is housed elsewhere/externally.

2. Easy access to blobs

Users would like easy access to blob data, with familiar tools, without having to go through the database. 

Using External Smartblobs in HCL Informix 15

HCL Informix 15 introduces external smartblobs. When you define an external smartblob space, you specify the external directory location (outside the database) where you would like the actual blob data to be stored. Then you assign blob column(s) to that external smartblob space when you CREATE TABLE. When a row is INSERTed, HCL Informix stores the blob data in the defined directory using an internal identifier for the filename.

Here’s an example of a customer forms table: custforms (denormalized and hardcoded for simplicity). My external sbspace directory is /home/informix/blog/resources/esbsp_dir1.

CREATE TABLE custforms(formid SERIAL, company CHAR(20), year INT, lname CHAR(20), 
formname CHAR(50), form CLOB) PUT form IN (esbsp);

Here, I INSERT a 2023 TaxForm123 document from a Java program for a woman named Sanchez, who works for Actian:

try(PreparedStatement p = c.prepareStatement("INSERT INTO custforms 
(company, year, lname, formname, form) values(?,?,?,?,?)");

FileInputStream is = new FileInputStream("file.xml")) {
p.setString(1, "Actian");
p.setString(2, "2023");
p.setString(3, "Sanchez");
p.setString(4, "TaxForm123");
p.setBinaryStream(5, is);
p.executeUpdate();
}

After I INSERT this row, my external directory and file would look like this:

[informix@schma01-rhvm03 resources]$ pwd
/home/informix/blog/resources
[informix@schma01-rhvm03 resources]$ ls -l esbsp*
-rw-rw---- 1 informix informix 10240000 Oct 17 13:22 esbsp_chunk1

esbsp_dir1:
total 0
drwxrwx--- 2 informix informix 41 Oct 17 13:19 IFMXSB0
[informix@schma01-rhvm03 resources]$ ls esbsp_dir1/IFMXSB0
LO[2,2,1(0x102),1729188125]

Where LO[2,2,1(0x102),1729188125]is an actual file that contains the data that I could access directly. The problem is that if I want to directly access this file for Ms. Sanchez, I would first have to figure out that this file belongs to her and is the tax document I want. It’s very cryptic!

A User-Friendly Smartblob Solution

When talking to Informix customers, they love the new external smartblobs feature but wish it could be a little more user-friendly.

As in the above example, instead of putting Sanchez’s 2023 TaxForm123 into a general directory called IFMXSB0 in a file called LO[2,2,1(0x102),1729188125, which together are meaningless to an end-user, wouldn’t it be nice if the file was located in an intuitive place like /home/forms/Actian/2024/TaxForm123/Sanchez.xml or something similar…something meaningful…how YOU want it organized?

Having HCL Informix automatically do this is a little easier said than done, primarily because the database would not intuitively know how any one customer would want to organize their blobs. What exact directory substructure? From what column or columns do I form the file names? What order? All use cases would be different.

Leveraging a User-Friendly Shadow Directory

The following solution shows how you can create your own user-friendly logical locations for your external smartblobs by automatically maintaining a lightweight shadow directory structure to correspond to actual storage locations. The solution uses a very simple system of triggers and stored procedures to do this.

Note: Examples here are shown on Linux, but other UNIX flavors should work also.

How to Set Up in 4 Steps

For each smartblob column in question

STEP 1: Decide how you want to organize access to your files.

Decide what you want the base of your shadow directory to be and create it. In my case for this blog, it is: /home/informix/blog/resources/user-friendly. You could probably implement this solution without a set base directory (as seen in the examples), but that may not be a good idea because users would unknowingly start creating directories everywhere.

STEP 2: Create a create_link stored procedure and corresponding trigger for INSERTs.

This procedure makes sure that the desired data-driven subdirectory structure exists from the base (mkdir -p), then forms a user-friendly logical link to the Informix smartblob file.    You must pass all the columns to this procedure from which you want to form the directory structure and filename from the trigger.

CREATE PROCEDURE

CREATE PROCEDURE create_link (p_formid INT, p_company CHAR(20), p_year INT,
p_lname CHAR(20), p_formname CHAR(50))
DEFINE v_oscommand CHAR(500);
DEFINE v_custlinkname CHAR(500);
DEFINE v_ifmxname CHAR(500);
DEFINE v_basedir CHAR(100);
-- set the base directory
LET v_basedir = '/home/informix/blog/resources/user-friendly';
-- make sure directory tree exists
LET v_oscommand = 'mkdir -p ' || TRIM(v_basedir) || '/' || TRIM(p_company) || '/' || 
TO_CHAR(p_year);
SYSTEM v_oscommand; 

-- form full link name 
LET v_custlinkname = TRIM(v_basedir) || '/' || TRIM(p_company) || '/' || TO_CHAR(p_year) 
|| '/' || TRIM(p_lname) || '.' || TRIM(p_formname) || '.' || TO_CHAR(p_formid);

-- get the actual location 
SELECT IFX_LO_PATH(form::LVARCHAR) INTO v_ifmxname FROM custforms WHERE formid = p_formid; 

-- create the os link 
LET v_oscommand = 'ln -s -f ' || '''' || TRIM(v_ifmxname) || '''' || ' ' || v_custlinkname; 
SYSTEM v_oscommand;

END PROCEDURE

CREATE TRIGGER

CREATE TRIGGER ins_tr INSERT ON custforms REFERENCING new AS post
FOR EACH ROW(EXECUTE PROCEDURE create_link (post.formid, post.company,
post.year, post.lname, post.formname));

STEP 3: Create a delete_link stored procedure and corresponding trigger for DELETEs.

This procedure will delete the shadow directory link if the row is deleted.

CREATE PROCEDURE

CREATE PROCEDURE delete_link (p_formid INT, p_company CHAR(20), p_year INT,
p_lname CHAR(20), p_formname CHAR(50))
DEFINE v_oscommand CHAR(500);
DEFINE v_custlinkname CHAR(500); 
DEFINE v_basedir CHAR(100);
-- set the base directory
LET v_basedir = '/home/informix/blog/resources/user-friendly';
-- form full link name
LET v_custlinkname = TRIM(v_basedir) || '/' ||
TRIM(p_company) || '/' || TO_CHAR(p_year) || '/' || TRIM(p_lname) || '.'
|| TRIM(p_formname) || '.' || TO_CHAR(p_formid);
-- remove the link
LET v_oscommand = 'rm -f -d ' || v_custlinkname;
SYSTEM v_oscommand;

END PROCEDURE

CREATE TRIGGER

CREATE TRIGGER del_tr DELETE ON custforms REFERENCING old AS pre FOR EACH ROW
(EXECUTE PROCEDURE delete_link (pre.formid, pre.company, pre.year, pre.lname, pre.formname));

STEP 4: Create a change_link stored procedure and corresponding trigger for UPDATEs, if desired.   In my example, Ms. Sanchez might get married to Mr. Simon and an UPDATE to her last name in the database occurs. I may then want to change all my user-friendly names from Sanchez to Simon.  This procedure deletes the old link and creates a new one.

Notice the update trigger only must fire on the columns that form your directory structure and filenames.

CREATE PROCEDURE

CREATE PROCEDURE change_link (p_formid INT, p_pre_company CHAR(20), 
p_pre_year INT, p_pre_lname CHAR(20), p_pre_formname CHAR(50), p_post_company CHAR(20), 
p_post_year INT, p_post_lname CHAR(20), p_post_formname CHAR(50))

DEFINE v_oscommand CHAR(500);
DEFINE v_custlinkname CHAR(500);
DEFINE v_ifmxname CHAR(500);
DEFINE v_basedir CHAR(100);
-- set the base directory
LET v_basedir = '/home/informix/blog/resources/user-friendly';

-- get rid of old

-- form old full link name
LET v_custlinkname = TRIM(v_basedir) || '/' || TRIM(p_pre_company) || '/' || 
TO_CHAR(p_pre_year) || '/' || TRIM(p_pre_lname) || '.' || TRIM(p_pre_formname) || '.' 
|| TO_CHAR(p_formid) ;

-- remove the link and empty directories
LET v_oscommand = 'rm -f -d ' || v_custlinkname;
SYSTEM v_oscommand;

-- form the new
-- make sure directory tree exists
LET v_oscommand = 'mkdir -p ' || TRIM(v_basedir) || '/' || TRIM(p_post_company) || '/' || 
TO_CHAR(p_post_year);
SYSTEM v_oscommand;

-- form full link name
LET v_custlinkname = TRIM(v_basedir) || '/' || TRIM(p_post_company) || '/' || 
TO_CHAR(p_post_year) || '/' || TRIM(p_post_lname) || '.' || TRIM(p_post_formname) 
|| '.' || TO_CHAR(p_formid) ;

-- get the actual location
-- this is the same as before as id has not changed
SELECT IFX_LO_PATH(form::LVARCHAR) INTO v_ifmxname FROM custforms WHERE formid = p_formid;

-- create the os link
LET v_oscommand = 'ln -s -f ' || '''' || TRIM(v_ifmxname) || '''' || ' ' || v_custlinkname;
SYSTEM v_oscommand;

END PROCEDURE

CREATE TRIGGER

CREATE TRIGGER upd_tr UPDATE OF formid, company, year, lname, formname ON custforms
REFERENCING OLD AS pre NEW as post

FOR EACH ROW(EXECUTE PROCEDURE change_link (pre.formid, pre.company, pre.year, pre.lname, 
pre.formname, post.company, post.year, post.lname, post.formname));

Results Example

Back to our example.

With this infrastructure in place, now in addition to the Informix-named file being in place, I would have these user-friendly links on my file system that I can easily locate and identify.

INSERT

[informix@schma01-rhvm03 2023]$ pwd
/home/informix/blog/resources/user-friendly/Actian/2023
[informix@schma01-rhvm03 2023]
$ ls Sanchez.TaxForm123.2

If I do an ls -l, you will see that it is a link to the Informix blob file.

[informix@schma01-rhvm03 2023]$ ls -l
total 0
lrwxrwxrwx 1 informix informix 76 Oct 17 14:20 Sanchez.TaxForm123.2 -> 
/home/informix/blog/resources/esbsp_dir1/IFMXSB0/LO[2,2,1(0x102),1729188126]

UPDATE

If I then update her last name with UPDATE custforms SET lname = ‘Simon’ where formid=2,my file system now looks like this:

[informix@schma01-rhvm03 2023]$ ls -l
lrwxrwxrwx 1 informix informix 76 Oct 17 14:25 Simon.TaxForm123.2 -> 
/home/informix/blog/resources/esbsp_dir1/IFMXSB0/LO[2,2,1(0x102),1729188126]

DELETE

If I then go and DELETE this form with DELETE FROM custforms where formid=2, my directory structure looks like this:

[informix@schma01-rhvm03 2023]$ pwd
/home/informix/blog/resources/user-friendly/Actian/2023
[informix@schma01-rhvm03 2023]$ ls
[informix@schma01-rhvm03 2023]$

We Welcome Your Feedback

Please enjoy the new HCL Informix15 external smartblob feature.

I hope this idea can make external smartblobs easier for you to use. If you have any feedback on the idea, especially on enhancements or experience in production, please feel free to contact me at mary.schulte@hcl-software.com. I look forward to hearing from you!

Find out more about the launch of HCL Informix 15.

Notes

1. Shadow directory permissions. In creating this example, I did not explore directory and file permissions, but rather just used general permissions settings on my sandbox server. Likely, you will want to control permissions to avoid some of the anomalies I discuss below.

2. Manual blob file delete. With external smartblobs, if permissions are not controlled, it is possible that a user might somehow delete the physical smartblob file itself from its directory. HCL Informix, itself, cannot control this from happening. In the event it does happen, HCL Informix does NOT delete the corresponding row; the blob file will just be missing. There may be aspects to links that can automatically handle this, but I have not investigated them for this blog.

3. Link deletion in the shadow directory. If permissions are not controlled, it is possible that a user might delete a logical link formed by this infrastructure. This solution does not detect this. If this is an issue, I would suggest a periodic maintenance job that cross references the shadow directory links to blob files to detect missing links. For those blobs with missing links, write a database program to look up the row’s location with the IFX_LO_PATH function, and reform the missing link.

4. Unique identifiers. I highly recommend using unique identifiers in this solution. In this simple example, I used formid. You don’t want to clutter things up, of course, but depending on how you structure your shadow directories and filenames, you may need to include more unique identifiers to avoid directory and link names duplication.

5. Empty directories. I did not investigate if there are options to rm in the delete stored procedure to clean up empty directories that might remain if a last item is deleted.

6. Production overhead. It is known that excessive triggers and stored procedures can add overhead to a production environment. For this blog, it is assumed that OLTP activity on blobs is not excessive, therefore production overhead should not be an issue. This being said, this solution has NOT been tested at scale.

7. NULL values. Make sure to consider the presence and impact of NULL values in columns used in this solution. For simplicity, I did not handle them here.

Informix is a trademark of IBM Corporation in at least one jurisdiction and is used under license.

 

The post User-Friendly External Smartblobs Using a Shadow Directory appeared first on Actian.


Read More
Author: Mary Schulte

Transforming Marketing Data into Business Growth: Key Insights and Strategies


Marketing leaders and data professionals often grapple with a familiar challenge: how to transform marketing data into tangible business growth. During a recent episode of The Lights on Data Show, I had the privilege of speaking with Kasper Bossen-Rasmussen, founder and CEO of Accutics, about this very topic. Together, we explored key takeaways for addressing […]

The post Transforming Marketing Data into Business Growth: Key Insights and Strategies appeared first on LightsOnData.


Read More
Author: George Firican

Why the Growing Adoption of IoT Demands Seamless Integration of IT and OT


Over the past year, cyberattacks on cyber-physical systems (CPS) have cost organizations around the world at least $500,000, highlighting the growing financial and operational risks of compromised security. As artificial intelligence (AI) continues to emerge as a key driver in nearly every sector, the need for trustworthy, secure data becomes even more crucial. To address these challenges, […]

The post Why the Growing Adoption of IoT Demands Seamless Integration of IT and OT appeared first on DATAVERSITY.


Read More
Author: Julian Durand

From Input to Insight: How Quality Data Drives AI and Automation


More and more enterprises are looking to automation and AI to deliver new efficiencies and give their organizations an edge in the market. Data is the engine that powers both automation and AI. But data must be clean and user-friendly for these systems to work effectively and deliver on their promise.  Lots of organizations are […]

The post From Input to Insight: How Quality Data Drives AI and Automation appeared first on DATAVERSITY.


Read More
Author: Amol Dalvi

Data Monetization: The Holy Grail or the Road to Ruin?


Unlocking the value of data is a key focus for business leaders, especially the CIO. While in its simplest form, data can lead to better insights and decision-making, companies are pursuing an entirely different and more advanced agenda: the holy grail of data monetization. This concept involves aggregating a variety of both structured and unstructured […]

The post Data Monetization: The Holy Grail or the Road to Ruin? appeared first on DATAVERSITY.


Read More
Author: Tony Klimas

Beyond Ownership: Scaling AI with Optimized First-Party Data


Brands, publishers, MarTech vendors, and beyond recently gathered in NYC for Advertising Week and swapped ideas on the future of marketing and advertising. The overarching message from many brands was one we’ve heard before: First-party data is like gold, especially for personalization. But it takes more than “owning” the data to make it valuable. Scale and accuracy […]

The post Beyond Ownership: Scaling AI with Optimized First-Party Data appeared first on DATAVERSITY.


Read More
Author: Tara DeZao

Ask a Data Ethicist: How Can You Learn More About Data and AI Ethics?


It was about this time last year that I pitched the team at DATAVERSITY the idea of this monthly column on data ethics. There’s certainly been no shortage of interesting questions to cover and I’ve enjoyed writing about both the practical and more philosophical aspects of this topic. As we wrap up this year and […]

The post Ask a Data Ethicist: How Can You Learn More About Data and AI Ethics? appeared first on DATAVERSITY.


Read More
Author: Katrina Ingram

Mind the Gap: Architecting Santa’s List – The Naughty-Nice Database


You never know what’s going to happen when you click on a LinkedIn job posting button. I’m always on the lookout for interesting and impactful projects, and one in particular caught my attention: “Far North Enterprises, a global fabrication and distribution establishment, is looking to modernize a very old data environment.” I clicked the button […]

The post Mind the Gap: Architecting Santa’s List – The Naughty-Nice Database appeared first on DATAVERSITY.


Read More
Author: Mark Cooper

RSS
YouTube
LinkedIn
Share