Output only. An estimate on the number of rows present in this session's
streams. This estimate is based on metadata from the table which might be
incomplete or stale.
public long EstimatedTotalBytesScanned { get; set; }
Output only. An estimate on the number of bytes this session will scan when
all streams are completely consumed. This estimate is based on
metadata from the table which might be incomplete or stale.
public long EstimatedTotalPhysicalFileSize { get; set; }
Output only. A pre-projected estimate of the total physical size of files
(in bytes) that this session will scan when all streams are consumed. This
estimate is independent of the selected columns and can be based on
incomplete or stale metadata from the table. This field is only set for
BigLake tables.
Output only. Time at which the session becomes invalid. After this time,
subsequent requests to read this Session will return errors. The
expire_time is automatically assigned and currently cannot be specified or
updated.
Output only. A list of streams created with the session.
At least one stream is created with the session. In the future, larger
request_stream_count values may result in this list being unpopulated,
in that case, the user will need to use a List method to get the streams
instead, which is not yet available.
Optional. ID set by client to annotate a session identity. This does not
need to be strictly unique, but instead the same ID should be used to group
logically connected sessions (e.g. All using the same ID for all sessions
needed to complete a Spark SQL query is reasonable).
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe latest version of the \u003ccode\u003eReadSession\u003c/code\u003e class in the Google BigQuery Storage v1 API is 3.17.0, with documentation available alongside previous versions.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eReadSession\u003c/code\u003e is a class for reading data from a BigQuery table, offering properties like \u003ccode\u003eArrowSchema\u003c/code\u003e, \u003ccode\u003eAvroSchema\u003c/code\u003e, and \u003ccode\u003eDataFormat\u003c/code\u003e to specify the output data format.\u003c/p\u003e\n"],["\u003cp\u003eThis class provides estimated metadata including \u003ccode\u003eEstimatedRowCount\u003c/code\u003e, \u003ccode\u003eEstimatedTotalBytesScanned\u003c/code\u003e, and \u003ccode\u003eEstimatedTotalPhysicalFileSize\u003c/code\u003e, allowing users to gauge the scale of data being read.\u003c/p\u003e\n"],["\u003cp\u003eEach \u003ccode\u003eReadSession\u003c/code\u003e has a unique identifier (\u003ccode\u003eName\u003c/code\u003e) and an \u003ccode\u003eExpireTime\u003c/code\u003e, after which it becomes invalid, and also includes a list of streams (\u003ccode\u003eStreams\u003c/code\u003e) that are created with it.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eReadSession\u003c/code\u003e class supports specifying read options like column selection and filters through \u003ccode\u003eReadOptions\u003c/code\u003e, and also includes a \u003ccode\u003eTable\u003c/code\u003e property that identifies the data source.\u003c/p\u003e\n"]]],[],null,["# Google BigQuery Storage v1 API - Class ReadSession (3.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.17.0 (latest)](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.16.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.16.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.15.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.15.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.14.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.14.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.13.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.13.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.12.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.12.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.11.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.11.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.10.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.10.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.9.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.9.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.8.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.8.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.7.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.7.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.6.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.6.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.5.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.4.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.3.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.2.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.1.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [3.0.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/3.0.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [2.9.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/2.9.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/2.8.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/2.7.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/2.6.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/2.5.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/2.4.0/Google.Cloud.BigQuery.Storage.V1.ReadSession)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/2.3.0/Google.Cloud.BigQuery.Storage.V1.ReadSession) \n\n public sealed class ReadSession : IMessage\u003cReadSession\u003e, IEquatable\u003cReadSession\u003e, IDeepCloneable\u003cReadSession\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google BigQuery Storage v1 API class ReadSession.\n\nInformation about the ReadSession. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e ReadSession \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[ReadSession](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1.ReadSession), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[ReadSession](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1.ReadSession), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[ReadSession](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1.ReadSession), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.BigQuery.Storage.V1](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.BigQuery.Storage.V1.dll\n\nConstructors\n------------\n\n### ReadSession()\n\n public ReadSession()\n\n### ReadSession(ReadSession)\n\n public ReadSession(ReadSession other)\n\nProperties\n----------\n\n### ArrowSchema\n\n public ArrowSchema ArrowSchema { get; set; }\n\nOutput only. Arrow schema.\n\n### AvroSchema\n\n public AvroSchema AvroSchema { get; set; }\n\nOutput only. Avro schema.\n\n### DataFormat\n\n public DataFormat DataFormat { get; set; }\n\nImmutable. Data format of the output data. DATA_FORMAT_UNSPECIFIED not\nsupported.\n\n### EstimatedRowCount\n\n public long EstimatedRowCount { get; set; }\n\nOutput only. An estimate on the number of rows present in this session's\nstreams. This estimate is based on metadata from the table which might be\nincomplete or stale.\n\n### EstimatedTotalBytesScanned\n\n public long EstimatedTotalBytesScanned { get; set; }\n\nOutput only. An estimate on the number of bytes this session will scan when\nall streams are completely consumed. This estimate is based on\nmetadata from the table which might be incomplete or stale.\n\n### EstimatedTotalPhysicalFileSize\n\n public long EstimatedTotalPhysicalFileSize { get; set; }\n\nOutput only. A pre-projected estimate of the total physical size of files\n(in bytes) that this session will scan when all streams are consumed. This\nestimate is independent of the selected columns and can be based on\nincomplete or stale metadata from the table. This field is only set for\nBigLake tables.\n\n### ExpireTime\n\n public Timestamp ExpireTime { get; set; }\n\nOutput only. Time at which the session becomes invalid. After this time,\nsubsequent requests to read this Session will return errors. The\nexpire_time is automatically assigned and currently cannot be specified or\nupdated.\n\n### Name\n\n public string Name { get; set; }\n\nOutput only. Unique identifier for the session, in the form\n`projects/{project_id}/locations/{location}/sessions/{session_id}`.\n\n### ReadOptions\n\n public ReadSession.Types.TableReadOptions ReadOptions { get; set; }\n\nOptional. Read options for this session (e.g. column selection, filters).\n\n### ReadSessionName\n\n public ReadSessionName ReadSessionName { get; set; }\n\n[ReadSessionName](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1.ReadSessionName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1.ReadSession#Google_Cloud_BigQuery_Storage_V1_ReadSession_Name) resource name property.\n\n### SchemaCase\n\n public ReadSession.SchemaOneofCase SchemaCase { get; }\n\n### Streams\n\n public RepeatedField\u003cReadStream\u003e Streams { get; }\n\nOutput only. A list of streams created with the session.\n\nAt least one stream is created with the session. In the future, larger\nrequest_stream_count values *may* result in this list being unpopulated,\nin that case, the user will need to use a List method to get the streams\ninstead, which is not yet available.\n\n### Table\n\n public string Table { get; set; }\n\nImmutable. Table that this ReadSession is reading from, in the form\n`projects/{project_id}/datasets/{dataset_id}/tables/{table_id}`\n\n### TableAsTableName\n\n public TableName TableAsTableName { get; set; }\n\n[TableName](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1.TableName)-typed view over the [Table](/dotnet/docs/reference/Google.Cloud.BigQuery.Storage.V1/latest/Google.Cloud.BigQuery.Storage.V1.ReadSession#Google_Cloud_BigQuery_Storage_V1_ReadSession_Table) resource name property.\n\n### TableModifiers\n\n public ReadSession.Types.TableModifiers TableModifiers { get; set; }\n\nOptional. Any modifiers which are applied when reading from the specified\ntable.\n\n### TraceId\n\n public string TraceId { get; set; }\n\nOptional. ID set by client to annotate a session identity. This does not\nneed to be strictly unique, but instead the same ID should be used to group\nlogically connected sessions (e.g. All using the same ID for all sessions\nneeded to complete a Spark SQL query is reasonable).\n\nMaximum length is 256 bytes."]]