{"id":32945083,"url":"https://github.com/michelderu/wxd-spark-hcd","last_synced_at":"2026-05-04T17:36:50.207Z","repository":{"id":321093666,"uuid":"1084461481","full_name":"michelderu/wxd-spark-hcd","owner":"michelderu","description":"Upgrade from operational Cassandra to AI-ready analytics and governance with watsonx.data","archived":false,"fork":false,"pushed_at":"2025-11-11T15:18:50.000Z","size":2804,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-11T17:15:44.654Z","etag":null,"topics":["cassandra","datastax","ibm","spark","watsonx-data"],"latest_commit_sha":null,"homepage":"https://www.ibm.com/products/watsonx-data","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michelderu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-27T17:57:10.000Z","updated_at":"2025-11-11T15:18:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"ce6724bc-6cb3-4722-a981-ba974eb61966","html_url":"https://github.com/michelderu/wxd-spark-hcd","commit_stats":null,"previous_names":["michelderu/wxd-spark-hcd"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/michelderu/wxd-spark-hcd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelderu%2Fwxd-spark-hcd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelderu%2Fwxd-spark-hcd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelderu%2Fwxd-spark-hcd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelderu%2Fwxd-spark-hcd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michelderu","download_url":"https://codeload.github.com/michelderu/wxd-spark-hcd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelderu%2Fwxd-spark-hcd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32618241,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cassandra","datastax","ibm","spark","watsonx-data"],"created_at":"2025-11-12T17:01:33.297Z","updated_at":"2026-05-04T17:36:50.199Z","avatar_url":"https://github.com/michelderu.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 IBM x DataStax for Converged workloads\n\n\u003cdiv align=\"center\"\u003e\n\n![IBM watsonx.data](https://img.shields.io/badge/IBM-watsonx.data-blue?style=for-the-badge\u0026logo=ibm)\n![DataStax HCD](https://img.shields.io/badge/DataStax-HCD-purple?style=for-the-badge\u0026logo=datastax)\n![Apache Spark](https://img.shields.io/badge/Apache-Spark-orange?style=for-the-badge\u0026logo=apache-spark)\n![Apache Iceberg](https://img.shields.io/badge/Apache-Iceberg-blue?style=for-the-badge\u0026logo=apache)\n\n*Upgrade from operational Cassandra to AI-ready analytics and governance with watsonx.data*\n\n\n\u003c/div\u003e\n\n---\n\n## 📋 Table of Contents\n\n- [🎯 Overview](#-overview)\n- [⚙️ Prerequisites](#️-prerequisites)\n- [🔧 Installation Steps](#-installation-steps)\n  - [A. IBM watsonx.data Developer Edition](#a-ibm-watsonxdata-developer-edition)\n  - [B. DataStax Hyper-Converged Database](#b-datastax-hyper-converged-database)\n  - [C. Add HCD to watsonx.data](#c-add-hcd-to-watsonxdata)\n- [🔍 Federated Analytics](#-federated-analytics)\n- [📊 Materialized Analytics using wx.d CTAS](#-materialized-analytics-using-wxd-ctas)\n- [⚡ Utilizing the Spark Engine](#-utilizing-the-spark-engine-for-materialized-analytics)\n- [📚 References](#-references)\n- [🛠️ Troubleshooting](#️-troubleshooting)\n\n---\n\n## 🎯 Overview\n\n\u003cdiv align=\"center\"\u003e\n\n![wxd-infrastructure-manager](./assets/wxd-infrastructure-manager.png)\n\n\u003c/div\u003e\n\n### 🎯 Purpose\nFacilitate seamless integration of **DataStax HCD (Cassandra)** to manage extensive operational workloads, using **IBM watsonx.data** for enhanced governed analytics capabilities.\n\n### 📖 Scope\nThis guide covers:\n- ✅ Installation of IBM watsonx.data Developer Edition\n- ✅ Setup of DataStax Hyper-Converged Database (HCD)\n- ✅ Integration between operational and analytical systems\n- ✅ Real-time data synchronization using Apache Spark\n- ✅ Materialized analytics with Apache Iceberg tables\n\n### 👥 Target Audience\n- 🧑‍💻 **Developers** - Implementation and integration\n- 🔧 **Customer Engineers** - Solution deployment\n- 💼 **Pre-sales Professionals** - Solution demonstration\n\n## ⚙️ Prerequisites\n\n### 💻 System Requirements\n\n| Component | Minimum | Recommended |\n|-----------|---------|-------------|\n| **Architecture** | x86_64 or ARM64 | x86_64 or ARM64 |\n| **CPU Cores** | 10 cores | 16 cores |\n| **Memory** | 16GB RAM | 24GB RAM |\n| **Disk Space** | 150GB free | 200GB+ free |\n\n### 🖥️ Supported Platforms\n- 🍎 **macOS** (Intel or Apple Silicon)\n- 🪟 **Windows 10/11** 64-bit\n- 🐧 **Linux** (Ubuntu 20.04+, RHEL 8+)\n\n### 📦 Required Software\n- **Docker/Podman** - Container runtime\n- **Kubernetes** - Container orchestration\n- **Java 11 or 17** - For DataStax HCD\n- **Maven** - For building Java applications\n\n---\n\n## 🔧 Installation Steps\n\n### A. IBM watsonx.data Developer Edition\n\n\u003e ⏱️ **Installation Time**: The setup process may take 15-30 minutes depending on your system performance.\n\n1. **📥 Download \u0026 Install**  \n   Follow the [IBM watsonx.data Developer Edition installation steps](https://www.ibm.com/docs/en/watsonxdata/standard/2.2.x?topic=developer-edition-new-version).\n\n2. **🔍 Verify Installation**  \n   Check that all pods are running correctly:\n   ```bash\n   kubectl get pods -n wxd\n   kubectl get pods -n wxd | wc -l # should return 22\n   ```\n\n3. **🌐 Expose the UI**\n   ```bash\n   export KUBECONFIG=~/.kube/config \u0026\u0026 nohup kubectl port-forward -n wxd service/lhconsole-ui-svc 6443:443 --address 0.0.0.0 \u003e /dev/null 2\u003e\u00261 \u0026\n   ```\n\n4. **✅ Test Access**  \n   Navigate to [https://localhost:6443/](https://localhost:6443/) and log in with:\n   - **Username**: `ibmlhadmin`\n   - **Password**: `password`\n\n   \u003cdiv align=\"center\"\u003e\n   \n   ![wxd-homepage](./assets/wxd-homepage.png)\n   \n   \u003c/div\u003e\n\n5. **🔧 Optional: Access MinIO and MDS**\n   ```bash\n   # MinIO (Object Storage)\n   export KUBECONFIG=~/.kube/config \u0026\u0026 nohup kubectl port-forward -n wxd service/ibm-lh-minio-svc 9001:9001 --address 0.0.0.0 \u003e /dev/null 2\u003e\u00261 \u0026\n   \n   # MDS (Metadata Service)\n   export KUBECONFIG=~/.kube/config \u0026\u0026 nohup kubectl port-forward -n wxd service/ibm-lh-mds-thrift-svc 8381:8381 --address 0.0.0.0 \u003e /dev/null 2\u003e\u00261 \u0026\n   ```\n\n   \u003e 📖 **Reference**: See the [IBM watsonx.data documentation](https://www.ibm.com/docs/en/watsonxdata/standard/2.2.x?topic=administering-exposing-minio-service) for more information.\n\n   Access MinIO at [http://localhost:9001/](http://localhost:9001/) with credentials:\n   - **Username**: `dummyvalue`\n   - **Password**: `dummyvalue`\n\n   \u003cdiv align=\"center\"\u003e\n   \n   ![minio-homepage](./assets/minio-homepage.png)\n   \n   \u003c/div\u003e\n\n### B. DataStax Hyper-Converged Database\n\n1. **📥 Download \u0026 Extract**\n   ```bash\n   # Download the HCD tarball\n   wget http://downloads.datastax.com/hcd/hcd-1.2.3-bin.tar.gz\n   \n   # Extract the archive\n   tar -xzf hcd-1.2.3-bin.tar.gz\n   ```\n\n2. **Create the logging directory**\n   ```bash\n   sudo mkdir /var/log/cassandra\n   sudo chown $(whoami):$(id -gn) /var/log/cassandra\n   ```\n\n3. **☕ Configure Java Environment**\n   ```bash\n   # Set Java 17 environment (required for HCD)\n   export JAVA_HOME=\"$(/usr/libexec/java_home -v17)\"\n   export PATH=\"$JAVA_HOME/bin:$PATH\"\n   export CASSANDRA_JDK_UNSUPPORTED=true\n   ```\n\n4. **🚀 Start HCD**\n   ```bash\n   ./hcd-1.2.3/bin/hcd cassandra\n   ```\n\n   \u003e ✅ **Success Indicator**: Look for this message in the logs:\n   \u003e ```\n   \u003e INFO  [main] 2025-10-27 13:40:24,500 HcdDaemon.java:22 - HCD startup complete\n   \u003e ```\n\n5. **🔍 Test Connection**\n   ```bash\n   ./hcd-1.2.3/bin/cqlsh -u cassandra -p cassandra\n   ```\n   ⚠️ This step depends on Python to be installed.\n   \n   Type `quit` to exit the CQL shell.\n\n5. **📊 Load Sample Data**\n   ```bash\n   cqlsh -f sample-data.cql\n   ```\n   \n\u003e 🎉 **Success!** You have successfully installed HCD and loaded some sample data!\n\n### C. Add HCD to watsonx.data\n\n1. **🔗 Connect HCD to watsonx.data**\n   - Navigate to [https://localhost:6443/#/infrastructure-manager](https://localhost:6443/#/infrastructure-manager)\n   - Click `Add component`\n   - Select `Cassandra` as a data source\n   - Click `Next`\n\n2. **⚙️ Configuration Details**  \n   Use the following configuration details:\n\n   | Field | Value |\n   |-------|-------|\n   | **Display name** | `HCD` |\n   | **Hostname** | `host.containers.internal` |\n   | **Port** | `9042` |\n   | **Username** | `cassandra` |\n   | **Password** | `cassandra` |\n   | **Associate catalog** | ✅ Checked |\n   | **Catalog name** | `hcd` |\n\n   Click `Create`.\n\n3. **✅ Verify Data Access**\n   - Click the `hcd` catalog\n   - Click `Data Objects`\n   - Expand `sample_ks` and click `users`\n   - Click `Data sample` and confirm the 3 users are present\n\n   \u003cdiv align=\"center\"\u003e\n   \n   ![wxd-data-manager](./assets/wxd-data-manager.png)\n   \n   \u003c/div\u003e\n\n\u003e 🎉 **Success!** You have successfully configured watsonx.data to access HCD!\n\n---\n\n## 🔍 Federated Analytics\n\n\u003e 🎯 **Goal**: Query operational Cassandra data directly using SQL through Presto query engine\n\nThe first converged data integration leverages **federated analytics** using Presto as the query engine, allowing you to query Cassandra data using standard SQL without data movement.\n\n### 📋 Steps\n\n1. **🔗 Associate HCD Catalog with Presto**\n   - Click `Presto` in the Infrastructure Manager\n   - Click `Manage associations`\n   - Add `hcd` catalog\n   - Click `Save and restart engine`\n\n2. **🔍 Query Operational Data**\n   - Open `Query workspace` from the left sidebar\n   - Ensure `Presto` is selected as the active engine\n   - Run the following query:\n   ```sql\n   SELECT * FROM hcd.sample_ks.users;\n   ```\n\n   \u003cdiv align=\"center\"\u003e\n   \n   ![wxd-query-workspace](./assets/wxd-query-workspace.png)\n   \n   \u003c/div\u003e\n\n\u003e 🎉 **Success!** You have successfully queried Cassandra data using SQL through the Presto Query Engine!\n\n---\n\n## 📊 Materialized Analytics using wx.d CTAS\n\n\u003e 🎯 **Goal**: Create materialized views for better performance and reduced operational system load\n\nFederated analytics can be stressful on operational systems handling massive workloads with low latency requirements. **Data Offloading** addresses this by materializing data into a governed catalog with associated Parquet files. Watsonx.data facilitates this process through `CREATE TABLE AS SELECT`.\n\n### 💡 Benefits of Data Offloading\n- 🚀 **Reduced Operational Load** - Minimizes impact on production Cassandra clusters\n- 💰 **Cost Optimization** - Offload workloads from expensive data warehouses\n- ⚡ **Better Performance** - Faster queries on materialized data\n- 🔄 **Flexible Analytics** - Combine offloaded data with warehouse data\n\n### 📋 Implementation Steps\n\n1. **🗂️ Create Iceberg Schema**\n   - Click `Data manager` → `Create` → `Create schema`\n   - Select:\n     - **Catalog**: `iceberg_data`\n     - **Name**: `hcd_users`\n   - Click `Create`\n\n2. **📦 Transfer Data with CTAS**\n   - Click `Query workspace` → `+` (new query tab)\n   - Execute the following CTAS (Create Table As Select) query:\n   ```sql\n   CREATE TABLE iceberg_data.hcd_users.users AS\n   SELECT * FROM hcd.sample_ks.users;\n   ```\n\n   \u003cdiv align=\"center\"\u003e\n   \n   ![wxd-query-manager-ctas](./assets/wxd-query-workspace-ctas.png)\n   \n   \u003c/div\u003e\n\n3. **✅ Verify Materialized Data**\n   - Click `Query workspace` → `+` (new query tab)\n   - Run the following query on the analytical catalog:\n   ```sql\n   SELECT * FROM iceberg_data.hcd_users.users;\n   ```\n\n   \u003cdiv align=\"center\"\u003e\n   \n   ![wxd-query-manager-iceberg](./assets/wxd-query-workspace-iceberg.png)\n   \n   \u003c/div\u003e\n\n\u003e 🎉 **Success!** You have successfully queried the newly created catalog, offloading query workload from the operational HCD database!\n\n---\n\n## ⚡ Utilizing the Spark Engine for Materialized Analytics\n\n\u003e 🎯 **Goal**: Leverage Apache Spark for advanced data processing and analytics workloads\n\nMany DataStax DSE customers require Spark capabilities for operational data analytics. With watsonx.data, you can achieve seamless synergy between operational and analytical processing using the Hyper-Converged Database (HCD).\n\nThis section uses the [cass_spark_iceberg repository](https://github.ibm.com/pravin-bhat/cass_spark_iceberg) that:\n1. Pulls the operation data from HCD\n2. Turns it into analytical data using a Star-schema and stores in Iceberg tables\n3. Runs several analytical queries on the Iceberg tables, offloading workload from HCD\n\n\u003cdiv align=\"center\"\u003e\n\n![star-schema](./assets/star-schema.png)\n\n\u003c/div\u003e\n\n💡 For more information about the process, sequence, tables and see [OLAP-STAR-SCHEMA.md](./OLAP-STAR-SCHEMA.md).\n\n### 📋 Implementation Steps\n\n1. **🔧 Create Spark Engine**\n   - Click `Infrastructure manager`\n   - Select `IBM Spark` → `Next`\n   - Configure:\n     - **Display name**: `Spark`\n     - **Associated catalogs**: `iceberg_data`\n   - Click `Create`\n\n2. **📥 Clone and Build Sample Application**  \n   This step depends on the contactpoint for Cassandra to be set correctly in `.../utils/CassUtil.java` on line 17.\n\n   In order to find your configured datacenter name, check the Cassandra config or run:\n   ```bash\n   ./hcd-1.2.3/bin/nodetool status | grep Datacenter\n   ```\n   \n   Update `CassUtil.java` accordingly and build the app:\n   ```bash\n   # Clone the example repository\n   git clone https://github.ibm.com/pravin-bhat/cass_spark_iceberg\n   cd cass_spark_iceberg\n   \n   # Update Cassandra connection settings in CassUtil.java\n   # Build the application\n   mvn clean package\n   ```\n\n3. **📊 Generate Sample Data**\n\n   ⚠️ For this step to work correctly the correct keyspace and table have to be created. Please refer to [Troubleshooting](#️-troubleshooting) to create these tables in case the Java application does not create them.\n\n   ```bash\n   mvn exec:java -Dexec.mainClass=\"com.ibm.wxd.datalabs.demo.cass_spark_iceberg.LoadCustomerOrdersById\"\n   ```\n\n   \u003e 🔍 **Verify Data**: Check data creation in watsonx.data Query workspace or via CQL:\n   \u003e ```bash\n   \u003e ./hcd-1.2.3/bin/cqlsh\n   \u003e ```\n   \u003e and run the following query:\n   \u003e ```sql\n   \u003e SELECT * FROM retail_ks.customer_orders_by_id;\n   \u003e ```\n\n4. **🪣 Prepare MinIO S3 Buckets**\n   - Ensure MinIO service is port-forwarded (see [Section A](#a-ibm-watsonxdata-developer-edition))\n   - Create buckets: `olap` and `spark-artifacts`\n   - Upload JAR file: `cass-spark-iceberg-1.2.jar` → `spark-artifacts` bucket\n\n5. **📊 Monitor Execution**\n   - Execute logs watcher: `./spark-logs.sh`\n   - Click `Submit application`\n   - Kick off the next step and watch results in the logs watcher terminal 🎉\n\n6. **🚀 Run OLAP Job**\n   - Navigate to `wx.d Infrastructure manager` → Click `Spark` engine\n   - Click `Applications` → `Create application +`\n   - Click `Payload` and paste the configuration:\n\n   ```json\n   {\n       \"application_details\": {\n           \"application\": \"s3a://spark-artifacts/cass-spark-iceberg-1.2.jar\",\n           \"class\": \"com.ibm.wxd.datalabs.demo.cass_spark_iceberg.CassandraToIceberg\",\n           \"conf\": {\n               \"spark.cassandra.connection.host\": \"host.containers.internal\",\n               \"spark.cassandra.auth.username\": \"cassandra\",\n               \"spark.cassandra.auth.password\": \"cassandra\",\n               \"spark.sql.catalog.spark_catalog.warehouse\": \"s3a://olap/\",\n               \"spark.hadoop.fs.s3a.impl\": \"org.apache.hadoop.fs.s3a.S3AFileSystem\",\n               \"spark.hadoop.fs.s3a.path.style.access\": \"true\",\n               \"spark.hadoop.fs.s3a.bucket.spark-artifacts.endpoint\": \"http://ibm-lh-minio-svc:9000\",\n               \"spark.hadoop.fs.s3a.bucket.spark-artifacts.access.key\": \"dummyvalue\",\n               \"spark.hadoop.fs.s3a.bucket.spark-artifacts.secret.key\": \"dummyvalue\",\n               \"spark.hadoop.fs.s3a.bucket.spark-artifacts.aws.credentials.provider\": \"org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider\",\n               \"spark.hadoop.fs.s3a.bucket.olap.endpoint\": \"http://ibm-lh-minio-svc:9000\",\n               \"spark.hadoop.fs.s3a.bucket.olap.access.key\": \"dummyvalue\",\n               \"spark.hadoop.fs.s3a.bucket.olap.secret.key\": \"dummyvalue\",\n               \"spark.hadoop.fs.s3a.bucket.olap.aws.credentials.provider\": \"org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider\"\n           }\n       },\n       \"deploy_mode\": \"local\"\n   }\n   ```\n\n   Now click `Submit application` and watch the logging window for output.\n\n---\n\n## 📚 References\n\n| Resource | Description | Link |\n|----------|-------------|------|\n| **IBM watsonx.data Documentation** | Official installation guide | [Developer Edition Setup](https://www.ibm.com/docs/en/watsonxdata/standard/2.2.x?topic=developer-edition-new-version) |\n| **DataStax HCD Integration** | GitHub repository with integration examples | [wx.d-developers-edition-add-hcd](https://github.ibm.com/Data-Labs/wx.d-developers-edition-add-hcd) |\n| **Spark Iceberg Example** | Sample application by Pravin Bhat | [cass_spark_iceberg](https://github.ibm.com/pravin-bhat/cass_spark_iceberg) |\n| **macOS Container GPU** | Technical article on enabling containers GPU on macOS | [Enabling Containers GPU macOS](https://sinrega.org/2024-03-06-enabling-containers-gpu-macos) |\n\n---\n\n## 🛠️ Troubleshooting\n\n### 🍎 Podman on Apple Silicon\n\n\u003e ⚠️ **Issue**: LibKrun limitation on Apple Silicon machines\n\n**Problem**: LibKrun (used by Podman Desktop on Apple Silicon) is limited to 8 cores, but watsonx.data Developer Edition requires at least 10 cores.\n\n#### ✅ Solution: Switch to applehv\n\n```bash\npodman machine stop\nexport CONTAINERS_MACHINE_PROVIDER=applehv\npodman machine init --cpus 10 --memory 16384 --rootful podman-wxd\npodman machine start podman-wxd\n```\n\n#### 📊 Comparison: applehv vs libkrun\n\n| Feature | applehv | libkrun |\n|---------|---------|---------|\n| **CPU Limit** | ✅ Flexible (10+ cores) | ❌ Hard-coded 8 cores |\n| **Stability** | ✅ Native macOS support | ⚠️ Limited support |\n| **GPU Passthrough** | ❌ Not available | ✅ Supported |\n| **Isolation** | ⚠️ Basic | ✅ Advanced |\n| **Customization** | ⚠️ Limited | ✅ Extensive |\n\n### 💾 Memory Optimization\n\n\u003e ⚠️ **Issue**: Default machine configuration may cause high memory utilization\n\n**Problem**: Default `podman-wxd` machine (10 cores, 16GB RAM) often reaches 98% memory utilization.\n\n#### ✅ Solution: Pre-create Optimized Machine\n\n```bash\npodman machine stop\nexport CONTAINERS_MACHINE_PROVIDER=applehv\npodman machine init --cpus 12 --memory 24576 --rootful podman-wxd\npodman machine start podman-wxd\n```\n\n### 🔧 Spark OLAP Missing Keyspace\n\n\u003e ⚠️ **Issue**: Sample data generation fails due to missing keyspace/table\n\n**Problem**: The `LoadCustomerOrdersById` step fails when keyspace and table don't exist.\n\n#### ✅ Solution: Create Required Schema\n\n```sql\n-- Connect to CQL shell\n./hcd-1.2.3/bin/cqlsh\n\n-- Create keyspace and table\nCREATE KEYSPACE retail_ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};\nCREATE TABLE IF NOT EXISTS customer_orders_by_id (\n    customer_id uuid, \n    order_id uuid, \n    order_date timestamp, \n    status text, \n    PRIMARY KEY (customer_id, order_id)\n);\n```\n\n### Which PODS should be running exactly?\n\nA healthy installation of wx.d developer edition should have 22 pods running.\n\n```bash\nkubectl -n wxd get pods\n```\n\nWill show the following pods:\n\n```\ngenerate-certs-and-truststore-fhpns               0/1     Completed   0          3d3h\nibm-lh-control-plane-prereq-p6fl9                 0/1     Completed   0          3d3h\nibm-lh-mds-rest-7f6d55c7f4-ql6h5                  1/1     Running     0          3d3h\nibm-lh-mds-thrift-6794898844-xgxl7                1/1     Running     0          3d3h\nibm-lh-minio-5fb9dffc57-mdqg8                     1/1     Running     0          3d3h\nibm-lh-presto-5b66899b8c-94kwp                    1/1     Running     0          3d3h\nibm-lh-validator-bc7dcccbb-6d9d9                  1/1     Running     0          3d3h\nimage-pull-job-h2vhc                              0/1     Completed   0          3d3h\nlhams-api-7bb48b798-xnmds                         1/1     Running     0          3d3h\nlhconsole-api-6f6cb9f7b8-zffsx                    1/1     Running     0          3d3h\nlhconsole-nodeclient-666fb7f79d-p2m84             1/1     Running     0          3d3h\nlhconsole-ui-645dc7d649-n7j2x                     1/1     Running     0          3d3h\nlhingestion-api-7bdbd8b786-wd24f                  1/1     Running     0          3d3h\nspark-hb-control-plane-66547699c-jxbdg            2/2     Running     0          3d3h\nspark-hb-create-trust-store-758c8848c8-hw4sr      1/1     Running     0          3d3h\nspark-hb-deployer-agent-5dd65b47c6-bp8dk          2/2     Running     0          3d3h\nspark-hb-load-postgres-db-specs-44l4v             0/1     Completed   0          3d3h\nspark-hb-nginx-68944fd748-mhnng                   1/1     Running     0          3d3h\nspark-hb-register-hb-dataplane-6f9549976f-vg7lb   1/1     Running     0          3d2h\nspark-hb-ui-595c9588c8-j7m9z                      1/1     Running     0          3d3h\nwxd-pg-postgres-0                                 1/1     Running     0          3d3h\n```\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n*For additional support, please refer to the official documentation or contact your IBM representative.*\n\n\u003c/div\u003e\n\n/v1","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichelderu%2Fwxd-spark-hcd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichelderu%2Fwxd-spark-hcd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichelderu%2Fwxd-spark-hcd/lists"}