Common Looker Studio Questions

Connecting MySQL Data Source

How do I connect a MySQL database to Looker Studio?

1

Access Connection Panel
2

  • Click “Create” in Looker Studio
  • Select “Data Source”
  • Search for “MySQL” in the connectors list
  • 3

    Enter Connection Details
    4

    Host: your-database-host
    Port: 3306 (default MySQL port)
    Database: your-database-name
    
    5

    Authentication
    6

    Enter your database credentials:
    7

  • Username
  • Password
  • Common MySQL Connection Issues

    If you encounter connection timeouts:

    1. Check if your IP is whitelisted
    2. Verify the host address
    3. Confirm the port is open

    Working with Calculated Fields

    JSON Parsing

    Basic JSON Extraction

    -- Extract simple value
    JSON_EXTRACT(column_name, '$.field_name')
    
    -- Remove quotes from extracted string
    REPLACE(JSON_EXTRACT(column_name, '$.field_name'), '"', '')
    
    -- Handle null values
    CASE 
      WHEN JSON_EXTRACT(column_name, '$.field_name') IS NOT NULL 
      THEN REPLACE(JSON_EXTRACT(column_name, '$.field_name'), '"', '')
      ELSE 'default_value'
    END
    

    Nested JSON Handling

    -- Extract nested value
    JSON_EXTRACT(column_name, '$.parent.child')
    
    -- Extract array element
    JSON_EXTRACT(column_name, '$.array[0]')
    
    -- Extract multiple values
    CONCAT(
      REPLACE(JSON_EXTRACT(column_name, '$.field1'), '"', ''),
      ' - ',
      REPLACE(JSON_EXTRACT(column_name, '$.field2'), '"', '')
    )
    

    Regular Expressions

    Common Regex Patterns

    1. URL Parsing
    -- Extract domain from URL
    REGEXP_EXTRACT(url_field, '^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n?]+)')
    
    -- Get URL path
    REGEXP_EXTRACT(url_field, '^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?[^:\/\n?]+(?::\d+)?(/[^?#]+)')
    
    1. String Cleaning
    -- Remove special characters
    REGEXP_REPLACE(field_name, '[^a-zA-Z0-9]', '')
    
    -- Format phone numbers
    REGEXP_REPLACE(phone_field, '([0-9]{3})([0-9]{3})([0-9]{4})', '($1) $2-$3')
    
    1. Data Validation
    -- Check email format
    CASE 
      WHEN REGEXP_MATCH(email_field, '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')
      THEN 'Valid'
      ELSE 'Invalid'
    END
    

    Common Calculated Fields

    Date Manipulations

    -- Extract week number
    WEEK(date_field)
    
    -- Format date
    DATE_FORMAT(date_field, '%Y-%m-%d')
    
    -- Calculate date difference
    DATEDIFF(end_date, start_date)
    

    Numeric Calculations

    -- Percentage calculation
    (value / total) * 100
    
    -- Running total
    SUM(value) OVER (ORDER BY date_field)
    
    -- Moving average
    AVG(value) OVER (ORDER BY date_field ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)
    

    Text Manipulations

    -- Concatenate fields
    CONCAT(first_name, ' ', last_name)
    
    -- Case transformation
    CASE 
      WHEN value > 100 THEN 'High'
      WHEN value > 50 THEN 'Medium'
      ELSE 'Low'
    END
    

    Troubleshooting Guide

    Performance Issues

    Optimization Tips

    1. Simplify Calculations
    -- Instead of nested JSON
    CASE 
      WHEN JSON_EXTRACT(data, '$.complex.nested.field') IS NOT NULL 
      THEN REPLACE(JSON_EXTRACT(data, '$.complex.nested.field'), '"', '')
      ELSE 'default'
    END
    
    -- Create intermediate fields
    WITH extracted_field AS (
      SELECT REPLACE(JSON_EXTRACT(data, '$.complex.nested.field'), '"', '') as field
    )
    
    1. Data Sampling
    • Use date filters
    • Limit to essential fields
    • Create aggregated views
    1. Caching Strategy
    • Enable report caching
    • Set appropriate refresh intervals
    • Use materialized views when possible

    Common Errors

    Data Type Mismatches

    -- Convert string to number
    CAST(string_field AS DECIMAL)
    
    -- Convert number to string
    CAST(number_field AS CHAR)
    
    -- Handle null values
    COALESCE(field_name, default_value)
    

    Missing Data

    1. Check date ranges
    2. Verify field names
    3. Validate data source refresh

    Formula Errors

    -- Divide by zero prevention
    CASE 
      WHEN denominator = 0 THEN 0 
      ELSE numerator / denominator 
    END
    
    -- Null handling in calculations
    COALESCE(value1 + value2, 0)
    

    Best Practices

    1. Data Quality

      • Validate input data
      • Handle edge cases
      • Document assumptions
    2. Performance

      • Use appropriate data types
      • Minimize complex calculations
      • Implement caching
    3. Maintenance

      • Document calculated fields
      • Use consistent naming
      • Regular validation checks