Show your appreciation for Deephaven by starring us on GitHub.

  • Docs
  • Blog
  • ContactRequest Demo
Try Demo
Core EngineUI & DashboardsPlottingEnterprisePlugins
  • Introduction
  • Deephaven Overview
  • Getting Started
    • Quickstart
      • Overview
      • Get Started
      • Architecture Overview
      • Create Tables
      • Table Operations
      • Time and Calendars
      • Query Strings
      • Recipes, not loops!
      • Real-time Plots
      • Data I/O
      • Configure your Instance
      • Wrapping Up
      • Docker
      • Source code
  • User Guide
      • Patterns of use
      • Table types
      • Incremental update model
      • Live DAG
      • Initialization and updates
      • Column types
        • Static tables
        • Ring tables
        • Time tables
        • Input Tables
        • Convert add- and append-only tables to blink tables
        • Write data to a real-time table
        • Generate tables with Groovy functions
      • Replay
      • Arrow Flight
      • Arrow/Barrage schema
        • Read CSV files
        • Write CSV files
        • The Deephaven CSV library
        • Read HTML files
        • Convert tables to HTML
      • Iceberg
        • Overview
        • Basic terms
        • Connect to a stream
        • Write a custom parser
        • Supported formats
        • Read Parquet files
        • Write Parquet files
        • Parquet instructions
      • SQL queries in Deephaven
      • Table data service
      • URI
      • Overview
      • Metadata
      • Select and create columns
      • Drop, move, and rename columns
      • Format columns
      • Filter
      • Sort
      • Keyed row selection
      • Keyed transpose
      • Merge
        • Group and ungroup data
        • Single aggregation
        • Multi-aggregation
        • Rolling aggregations
        • Rollup tables
        • Tree tables
        • Exact and relational joins
        • Inexact, time-series, and range joins
      • Partition
      • Synchronize tables
      • Snapshot
        • Work with time
        • Work with calendars
        • Downsample data
        • Table listeners
        • Iterate over tables
        • Extract table values
      • Overview
      • Data types
      • Nulls, infs, and NaNs
      • Arrays
      • Strings
      • Java classes & objects
        • Boolean & numeric
        • String & char
        • Date-time
        • Formulas
        • Filters
        • Operators
        • Casting
        • Ternary-if
        • Constants
        • Variables
        • Functions
        • Query Scope
        • Variables
        • Closures
        • Classes & objects
      • Execution Context
      • Liveness Scope
      • Systemic Object Marking
      • Generate query strings
      • Plot without writing queries
      • Built-in plotting API
        • Navigate the GUI
        • Upload a table from a file
        • Set date-time format
        • Set table density
        • Create and organize notebooks
        • Markdown widgets
        • Format tables in the UI
        • Filter without writing queries
        • Clickable links
        • Custom themes
        • Use IFrames
        • Overview
        • Getting started
        • Resource management
        • Data I/O
        • Fluent interface
        • Overview
        • Fetch tables
        • Import tables
        • Create Input Tables
        • Run scripts
        • Table operations
        • Extract data
        • Stream data with Input Tables
      • JS API
        • Overview
        • Initialize
        • Binding to a table
        • Execute a query on a table
        • Sort a table
        • Filter a table
        • Query objects
        • Join two tables
        • Perform aggregations on table
        • Convert a PyArrow table to a Deephaven table
        • Execute a script server side
        • Subscribe to a ticking table
        • Error handling
        • Capture Python client tables
        • Overview
        • Building blocks
        • Real-time data analysis
        • Powerful table operations
        • Aggregations
        • Moving operations
      • Flight SQL
      • Protobuf and RPC
      • Install and use plugins
      • Create your own plugin
      • Create a JavaScript plugin
      • MCP
      • Copilot extension
      • Think like a Deephaven ninja
      • Vectorization and the recipe paradigm
        • Use performance tables
        • Dial down the update frequency of ticking tables
        • Data Indexes
        • Predicate Pushdown filtering
        • Parallelization
        • Synchronization and locking
        • Formulas and threads
        • Track processing time
        • Barrage metrics
        • Interpret Barrage metrics
        • Troubleshoot query performance
        • Triage errors in queries
        • Decipher Groovy errors
        • Get version information
        • Retrieve logs
        • Overview
        • Docker
        • Source
        • Common problems
      • Deephaven's design
      • The Table API
      • Core API design
      • Servers & clients
      • What is Barrage?
      • Deephaven Vectors
  • Deploy and administer
    • Install the production application
    • Update Deephaven
      • AWS EC2
      • GCP
      • Anonymous
      • Keycloak
      • mTLS
      • Pre-shared key
      • Username/password
      • Docker data volumes
      • Adjust heap size
      • Deephaven console service
      • Deephaven Docker application
      • Install packages
      • Install and use Java packages
      • Configure the production application
      • Deephaven configuration files
      • Configuration properties
      • Web defaults
      • JS plugins
      • Custom environment variables
      • Periodic Update Graph configuration
      • Formula validation configuration
      • Query table configuration
        • Overview
        • Libraries
        • Scripts
        • Configuration
  • Reference
      • Javadoc (client/server)
      • C++ (client)
      • C++ (examples)
      • Godoc
      • JavaScript API (client/server)
      • Pydoc (client)
      • Pydoc (server)
      • R (client)
      • Barrage (Deephaven's Arrow Flight extension)
      • gRPC
      • Protobuf
      • awaitUpdate
      • LivenessScope
      • hasDataIndex
      • getDataIndex
      • getOrCreateDataIndex
          • emptyTable
          • newTable
          • timeTable
          • Input Table
          • RingTableTools.of
          • booleanCol
          • byteCol
          • charCol
          • col
          • instantCol
          • doubleCol
          • floatCol
          • intCol
          • longCol
          • shortCol
          • stringCol
        • addOnlyToBlink
        • blinkToAppendOnly
        • FunctionGeneratedTableFactory
        • DynamicTableWriter
        • Replayer
        • TablePublisher
        • removeBlink
        • readCsv
        • writeCsv
        • IcebergCatalogAdapter
        • IcebergTableAdapter
        • IcebergTable
        • IcebergReadInstructions
        • IcebergUpdateMode
        • IcebergTableWriter
        • IcebergWriteInstructions
        • InferenceResolver
        • UnboundResolver
        • BuildCatalogOptions
        • LoadTableOptions
        • consumeToPartitionedTable
        • consumeToTable
        • produceFromTable
        • readTable
        • writeTable
        • writeKeyValuePartitionedTable
        • dryRun
        • evaluate
        • parseSql
      • URI
        • diff
        • getAttribute
        • getAttributeKeys
        • getAttributes
        • getColumnSource
        • getDefinition
        • hasAttribute
        • hasColumns
        • isBlink
        • isEmpty
        • isFailed
        • isFlat
        • isRefreshing
        • meta
        • numColumns
        • withAttributes
        • withKeys
        • withoutAttributes
        • withUniqueKeys
        • dropColumns
        • flatten
        • lazyUpdate
        • moveColumns
        • moveColumnsDown
        • moveColumnsUp
        • renameColumns
        • retainingAttributes
        • select
        • selectDistinct
        • update
        • updateView
        • view
        • DownsampledWhereFilter
        • head
        • headPct
        • slice
        • slicePct
        • tail
        • TailInitializationFilter
        • tailPct
        • TimeSeriesFilter
        • where
        • whereIn
        • whereNotIn
        • wouldMatch
        • restrictSortTo
        • reverse
        • sort
        • sortDescending
        • formatColumns
        • formatColumnWhere
        • formatRowWhere
        • setLayoutHints
        • atBack
        • atFront
        • columnGroup
        • dropColumnFormats
        • freeze
        • hide
        • columnsToRows
        • keyedTranspose
        • merge
        • mergeSorted
          • groupBy
          • ungroup
          • absSumBy
          • avgBy
          • countBy
          • firstBy
          • headBy
          • lastBy
          • maxBy
          • medianBy
          • minBy
          • stdBy
          • sumBy
          • tailBy
          • varBy
          • wavgBy
          • wsumBy
          • aggBy
          • partitionedAggBy
          • AggAbsSum
          • aggAllBy
          • AggApproxPct
          • AggAvg
          • AggCount
          • AggCountDistinct
          • AggCountWhere
          • AggDistinct
          • AggFirst
          • AggFormula
          • AggGroup
          • AggLast
          • AggMax
          • AggMed
          • AggMin
          • AggPartition
          • AggPct
          • AggSortedFirst
          • AggSortedLast
          • AggStd
          • AggSum
          • AggUnique
          • AggVar
          • AggWAvg
          • AggWSum
        • rollup
        • tree
        • updateBy
        • Delta
        • DeltaControl
        • Fill
        • OperationControl
          • CumCountWhere
          • CumMax
          • CumMin
          • CumProd
          • CumSum
          • Ema
          • EmMax
          • EmMin
          • Ems
          • EmStd
          • RollingAvg
          • RollingCount
          • RollingCountWhere
          • RollingFormula
          • RollingGroup
          • RollingMax
          • RollingMin
          • RollingProduct
          • RollingStd
          • RollingSum
          • RollingWAvg
        • aj
        • exactJoin
        • fullOuterJoin
        • join
        • leftOuterJoin
        • Multi-join
        • MultiJoinInput
        • MultiJoinTable
        • naturalJoin
        • raj
        • rangeJoin
        • partitionBy
        • filter
        • merge
        • sort
        • table
        • constituentChangesPermitted
        • constituentColumnName
        • constituentDefinition
        • constituentFor
        • constituents
        • keyColumnNames
        • uniqueKeys
        • proxy
        • partitionedTransform
        • transform
        • snapshot
        • snapshotWhen
        • addTimeWindow
          • now
          • nowMillisResolution
          • nowSystem
          • nowSystemMillisResolution
          • today
          • currentClock
          • setClock
          • currentTimeMicros
          • currentTimeMillis
          • currentTimeNanos
          • instantMillis
          • instantNanos
          • parseDuration
          • parseDurationNanos
          • parseDurationNanosQuiet
          • parseDurationQuiet
          • parseEpochNanos
          • parseEpochNanosQuiet
          • parseInstant
          • parseInstantQuiet
          • parseLocalDate
          • parseLocalDateQuiet
          • parseLocalTime
          • parseLocalTimeQuiet
          • parsePeriod
          • parsePeriodQuiet
          • parseTimePrecision
          • parseTimePrecisionQuiet
          • parseTimeZone
          • parseTimeZoneQuiet
          • parseZonedDateTime
          • parseZonedDateTimeQuiet
          • epochAutoToEpochNanos
          • epochAutoToInstant
          • epochAutoToZonedDateTime
          • epochMicros
          • epochMicrosToInstant
          • epochMicrosToZonedDateTime
          • epochMillis
          • epochMillisToInstant
          • epochMillisToZonedDateTime
          • epochNanos
          • epochNanosToInstant
          • epochNanosToZonedDateTime
          • epochSeconds
          • epochSecondsToInstant
          • epochSecondsToZonedDateTime
          • excelToInstant
          • excelToZonedDateTime
          • toExcelTime
          • toInstant
          • toLocalDate
          • toLocalTime
          • toZonedDateTime
          • microsToMillis
          • microsToNanos
          • microsToSeconds
          • millisToMicros
          • millisToNanos
          • millisToSeconds
          • nanosToMicros
          • nanosToMillis
          • nanosToSeconds
          • secondsToMicros
          • secondsToMillis
          • secondsToNanos
          • atMidnight
          • diffDays
          • diffMicros
          • diffMillis
          • diffMinutes
          • diffNanos
          • diffSeconds
          • diffYears365
          • diffYearsAvg
          • isAfter
          • isAfterOrEqual
          • isBefore
          • isBeforeOrEqual
          • lowerBin
          • minus
          • plus
          • upperBin
          • dayOfMonth
          • dayOfWeek
          • dayOfYear
          • hourOfDay
          • microsOfMilli
          • microsOfSecond
          • millisOfDay
          • millisOfSecond
          • minuteOfDay
          • minuteOfHour
          • monthOfYear
          • nanosOfDay
          • nanosOfMilli
          • nanosOfSecond
          • secondOfDay
          • secondOfMinute
          • year
          • yearOfCentury
          • formatDate
          • formatDateTime
          • formatDurationNanos
          • timeZone
          • timeZoneAliasAdd
          • timeZoneAliasRm
      • Query language functions
        • equals
        • not equals
        • icase in
        • icase not in
        • in
        • not in
        • Query Scope
        • Special variables and constants
        • Arrays
        • Barrier
        • ConcurrencyControl
        • DateTime
        • Durations
        • Casting
        • NaNs
        • Nulls
        • Objects
        • Periods
        • Strings
      • catHistPlot
      • catPlot
      • catPlotBy
      • histPlot
      • ohlcPlot
      • oneClick
      • piePlot
      • plot
      • plotBy
      • plotStyle
      • SelectableDataSetOneClick
      • Automatic Groovy imports
      • Backend imports
        • Overview
        • Basic
        • Math
        • Time
        • Logic
        • Parse
        • Sort
        • Search
        • GUI
        • Constants
        • Java
        • Data types
  • Cheat sheets
    • Ultimate cheat sheet
    • Performance tables
    • Time operations
      • Simple table constructors
      • CSV
      • Kafka
      • Parquet
      • URI
  • Help and more
      • Overview
        • How can I find which Core version to which a feature or fix was added?
        • Is docker compose required?
        • Why do ticking tables stall on WSL 2?
        • How do I configure Deephaven to use another port?
        • What's the minimum amount of memory I should allocate to a Deephaven server?
        • Is it possible disable the Deephaven console?
        • How do I set the default timezone?
        • How can I manage the number of cores Deephaven can use?
        • Where can I find the password for the Deephaven IDE?
        • How do I increase the maximum message size?
        • Can I integrate custom data sources with Deephaven?
        • Is it possible to read a Parquet file from a remote location?
        • When does Deephaven load data into memory for Parquet reads?
        • How can I periodically write a ticking table to disk?
        • Does Deephaven have a built-in ATR?
        • How can I perform rolling operations without a fixed window size?
        • How do I delete historical data?
        • How do I extract a list of distinct dates from a table?
        • How do row keys and positional indices behave during table operations?
        • How do I automatically execute Groovy code based on a Deephaven table column value?
        • When should I use `whereIn` or `naturalJoin`?
        • How can I capture the first row of the last N updates?
        • How do I create a partitioned blink table?
        • Does it make any difference if I separate table operations or chain them together?
        • How do I convert vector columns to primitive array columns?
        • Why isn't `lastBy` ticking?
        • How efficient are my table selection operations?
        • How do I shift values in columns?
        • How do I filter by time of day across all dates?
        • How can I convert year, day, and minute to an Instant?
        • How can I convert an integer date to a formatted string?
        • Is there a utility to pretty print a table to log?
        • How do I control what objects are displayed in the console?
        • Why do queries run faster the second time they are run?
        • What's the best approach to monitor Deephaven server health?
        • Is there a way to find out how much memory a table is using?
        • How do I solve a `hash table exceeds maximum size` error?
        • Why am I getting an UpdateGraphConflictException?
        • Why are my table operations producing incorrect results?
        • How do I run Deephaven behind AWS ALB?
        • Why can't I read from S3?
        • How can I assume a specific role for S3?
    • Deephaven example apps on GitHub
    • Engage in GitHub discussions
    • File GitHub issues
    • Slack
  • Syntax
  • Parameters
  • Returns
  • Examples
  • Related documentation
  • Question? Give us feedback ↗
  • Edit this page on GitHub ↗
  • View as markdown
  • ↑ Back to top

getAttributeKeys

The getAttributeKeys method returns an immutable set of all the attributes that have values in the source table's AttributeMap.

Syntax

Parameters

This method has no parameters.

Returns

An immutable set of all the attributes that have values in the source table's AttributeMap.

Examples

Related documentation

  • withoutAttributes
  • getAttribute
  • getAttributes
  • hasAttribute
  • retainingAttributes
  • withAttributes
  • Javadoc

Community Core

DocumentationCommunity questionsOpen-core LicensePydoc clientPydoc serverJavadoc client/serverGodoc clientC++ client

Enterprise

Enterprise SupportDocumentation

Social

BlogGithubSlackLinkedinYoutube

Company

AboutCareersNewsroomBrand AssetsContact

Copyright © 2026 Deephaven Data Labs LLC

Privacy PolicyTerms of Service
table.getAttributeKeys()
import io.deephaven.engine.table.impl.util.AppendOnlyArrayBackedInputTable
import io.deephaven.engine.table.AttributeMap

source = newTable(
    doubleCol("Doubles", 3.1, 5.45, -1.0),
    stringCol("Strings", "Creating", "New", "Tables")
)

result = AppendOnlyArrayBackedInputTable.make(source)

println source.getAttributeKeys()
println result.getAttributeKeys()