---
title: From Unstructured Data to Actionable Insights using IBM watsonx.data
description: This blog provides a workflow that converts unstructured data into structured tables using watsonx.data and connects them to IBM Planning Analytics
---

[ACG IBM Planning and Analytics Blog ](https://www.acgi.com/blog)

# [From Unstructured Data to Actionable Insights using IBM watsonx.data](https://www.acgi.com/blog/from-unstructured-data-to-actionable-insights)

 Written by [Venkata Bachu](https://www.acgi.com/blog/author/venkata-bachu) | Thu, Nov, 13, 2025 @ 08:30 PM

 

## **Introduction** 

In today’s data-driven world, organizations often sit on massive volumes of unstructured information in PDFs, logs, text files, JSONs. While the files hold valuable information, business analytics tools like [IBM Planning Analytics (PA)](https://www.ibm.com/products/planning-analytics?utm_content=SRCWW&p1=Search&p4=317964872146&p5=e&p9=111784868637&gclsrc=aw.ds&gad_source=1&gad_campaignid=11419541003&gbraid=0AAAAAD-_QsTdXwNYuRtkGAyX2voQAL72s&gclid=EAIaIQobChMIwYCjq4zekAMVvHBHAR3VXxT9EAAYASAAEgJR5fD_BwE) rely on structured, queryable data to deliver insights. That's where [IBM watsonx.data](https://www.ibm.com/products/watsonx-data?utm_content=SRCWW&p1=Search&p4=2053649838198&p5=e&p9=151965725034&gclsrc=aw.ds&gad_source=1&gad_campaignid=20116653496&gbraid=0AAAAAD-_QsSg1VLuBevK4a2VogUvZ61Vm&gclid=EAIaIQobChMI-8OGoIzekAMVnGdHAR0hPBmqEAAYASAAEgLrl_D_BwE) and IBM PA come together. In this article, we will explore how unstructured data can be processed in watsonx.data, and made available in IBM PA for planning and analysis.   
   
This post walks through an end-to-end workflow that converts unstructured data into structured tables in watsonx.data and connects them seamlessly to IBM PA for advanced planning and forecasting. 

 

 

## **Understanding the Architecture** 

- IBM watsonx.data is a modern, open data lakehouse that can store and query structured, semi-structured, and unstructured data. 
- IBM Planning Analytics, on the other hand, can only consume structured data (tables, columns, rows).
- To connect the two, unstructured data needs to be converted into structured tables that IBM PA can read. This connection is established via watsonx.data’s Presto/Trino query engine or through DataStage or watsonx.ai pipelines.
  
   

### **Step 1: Ingest Unstructured Data into IBM watsonx.data** 

Start by uploading your raw files— PDFs, JSONs, logs, etc.— to [IBM Cloud Object Storage (COS)](https://www.ibm.com/products/cloud-object-storage). IBM Watsonx.data integrates directly with COS, allowing you to register a COS bucket as a schema or catalog.   
   
**Example SQL:**   
         CREATE SCHEMA IF NOT EXISTS unstructured_data   
         WITH (location = 's3a://my-bucket/unstructured/');   
   
You can also use ETL tools like [DataStage](https://www.ibm.com/products/datastage) or watsonx.ai pipelines to create ingestion jobs that extract metadata or text and store the results in structured formats such as [Parquet](https://parquet.apache.org/) or CSV. 

 

 

### **Step 2: Process and Structure the Data** 

Once your files are in COS, you’ll need to make them analyzable by transforming them into tabular form. 

Options include:

- **Watsonx.ai:** Use LLMs or NLP models to extract structured fields like categories, summaries, or sentiments.
- **IBM DataStage:** Build data flow pipelines to parse and transform JSON, XML, or text files.
- **Python SDK + watsonx.data:** Use Python (pandas, PySpark, etc.) to extract and process the data. 

Example output:   
        | document_id | category | summary | sentiment |   
 

Save this structured data back into watsonx.data for querying.  

 

 

### **Step 3: Create Structured Tables for IBM PA** 

After processing, register your structured files (CSV, Parquet, or Delta) as tables in watsonx.data: 

**Sql like:**   
       CREATE TABLE processed_data (   
              column1 VARCHAR,   
              column2 VARCHAR,   
              column3 VARCHAR   
           )   
           WITH (   
                 format = 'PARQUET',   
                 external_location = 's3a://my-bucket/processed/'   
           );   
   
Confirm you can query the table in watsonx.data’s SQL editor. 

 

 

### **Step 4: Connect IBM Planning Analytics to watsonx.data** 

Now that you have structured, queryable tables, connect IBM PA to watsonx.data either:

- **Directly via ODBC/JDBC** to the Presto/Trino endpoint.
- **Through IBM DataStage or Watson Query** as an intermediary layer. 

   
**Example JDBC connection:**   
         jdbc:trino://<watsonx-data-endpoint>:443/catalog/schema   
   
Once the connection is set, import your structured tables into IBM PA cubes for use in forecasting, reporting, or scenario analysis. 

 

 

## **Example: End-to-End Workflow from PDFs to PA**

1. Upload PDFs to COS   
   s3a://my-bucket/raw_pdfs/ 

 

2. Extract Text using Python and watsonx.data SDK   
   from PyPDF2 import PdfReader   
   import pandas as pd   
   
   def extract_pdf_text(file):   
       reader = PdfReader(file)   
       return " ".join([page.extract_text() for page in reader.pages if page.extract_text()])   
   
   data = [{"filename": f, "text": extract_pdf_text(f)} for f in ["File1.pdf", "File2.pdf"]]   
   pd.DataFrame(data).to_csv("pdf_texts.csv", index=False)

 

3. Upload Structured Text to watsonx.data   
   CREATE TABLE pdf_raw_texts (   
     filename VARCHAR,   
     text VARCHAR   
   )   
   WITH (   
     format = 'CSV',   
     external_location = 's3a://my-bucket/structured/'   
   );

 

4. Optional: Enrich Data with NLP   
   from ibm_watsonx_ai.foundation_models import Model   
   
   model = Model(model_id="ibm/granite-13b-instruct", api_key="your_api_key")   
   df["summary"] = df["text"].apply(lambda t: model.generate(prompt=f"Summarize this:\n{t[:5000]}"))   
   df[["filename", "summary"]].to_csv("pdf_summaries.csv", index=False)

 

5. Register and Query in watsonx.data   
   CREATE TABLE pdf_summaries (   
     filename VARCHAR,   
     summary VARCHAR   
   )   
   WITH (   
     format = 'CSV',   
     external_location = 's3a://my-bucket/structured/pdf_summaries/'   
   );

 

6. Import into IBM PA   
   - In IBM PA Workspace, go to Data Sources → Add Connection   
   - Choose JDBC/ODBC   
   - Enter watsonx.data connection info   
   - Import pdf_summaries into your cubes for analysis.

 

 

## **Conclusion** 

By combining IBM watsonx.data’s scalable data lakehouse with IBM PA’s modeling and forecasting, you can unlock insights from even your most complex unstructured datasets. 

 

This integration enables a full data lifecycle, from raw files to enriched insights, all within the IBM ecosystem. 

[View full post](https://www.acgi.com/blog/from-unstructured-data-to-actionable-insights)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Venkata Bachu"
  },
  "dateModified" : "2025-11-21T18:49:46.207Z",
  "datePublished" : "2025-11-13T20:30:37Z",
  "headline" : "From Unstructured Data to Actionable Insights using IBM watsonx.data",
  "image" : {
    "@type" : "ImageObject",
    "height" : 630,
    "url" : "https://235668.fs1.hubspotusercontent-na1.net/hubfs/235668/watsonx.data.png",
    "width" : 1200
  },
  "mainEntityOfPage" : "https://www.acgi.com/blog/from-unstructured-data-to-actionable-insights",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60.0,
      "url" : "https://235668.fs1.hubspotusercontent-na1.net/hubfs/235668/careers/images/logo.png",
      "width" : 92.347824
    },
    "name" : "ACG Business Analytics Blog"
  }
}
```