Documentation
¶
Index ¶
- Variables
- type CatalogColumnRow
- type ColumnValue
- type CustomMetricsRow
- type DatabaseRow
- type DoubleValue
- type DwhFqn
- type HasTableFqn
- type IgnoredValue
- type IntValue
- type NoEnoughPermissionsError
- type SchemaColumnField
- type Scrapper
- type SegmentRow
- type SegmentValue
- type SqlDefinitionRow
- type TableMetricsRow
- type TableRow
- type Tag
- type TimeValue
- type Value
- type WithSetInstance
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrUnsupported = errors.New("unsupported")
Functions ¶
This section is empty.
Types ¶
type CatalogColumnRow ¶
type CatalogColumnRow struct {
Instance string `db:"instance" json:"instance" ch:"instance" bigquery:"instance"`
Database string `db:"database" json:"database" ch:"_database" bigquery:"database"`
Schema string `db:"schema" json:"schema" ch:"schema" bigquery:"schema"`
Table string `db:"table" json:"table" ch:"table" bigquery:"table"`
IsView bool `db:"is_view" json:"is_view" ch:"is_view" bigquery:"is_view"`
Column string `db:"column" json:"column" ch:"column" bigquery:"column"`
Type string `db:"type" json:"type" ch:"type" bigquery:"type"`
Position int32 `db:"position" json:"position" ch:"position" bigquery:"position"`
Comment *string `db:"comment" json:"comment" ch:"comment" bigquery:"comment"`
TableComment *string `db:"table_comment" json:"table_comment" ch:"table_comment" bigquery:"table_comment"`
ColumnTags []*Tag `json:"column_tags"`
TableTags []*Tag `json:"table_tags"`
IsStructColumn bool `db:"is_struct_column" json:"is_struct_column" ch:"is_struct_column" bigquery:"is_struct_column"`
IsArrayColumn bool `db:"is_array_column" json:"is_array_column" ch:"is_array_column" bigquery:"is_array_column"`
FieldSchemas []*SchemaColumnField
}
func (CatalogColumnRow) GetComment ¶
func (r CatalogColumnRow) GetComment() string
func (CatalogColumnRow) GetTableComment ¶
func (r CatalogColumnRow) GetTableComment() string
func (CatalogColumnRow) TableFqn ¶
func (r CatalogColumnRow) TableFqn() DwhFqn
type ColumnValue ¶
type CustomMetricsRow ¶
type CustomMetricsRow struct {
Segments []*SegmentValue
ColumnValues []*ColumnValue
}
type DatabaseRow ¶
type DatabaseRow struct {
Instance string `db:"instance" json:"instance" ch:"instance" bigquery:"instance"`
Database string `db:"database" json:"database" ch:"_database" bigquery:"database"`
Description *string `db:"description" json:"description" ch:"description" bigquery:"description"`
DatabaseType *string `db:"database_type" json:"database_type" ch:"database_type" bigquery:"database_type"`
DatabaseOwner *string `db:"database_owner" json:"database_owner" ch:"database_owner" bigquery:"database_owner"`
}
func (DatabaseRow) SetInstance ¶
func (r DatabaseRow) SetInstance(instance string)
type DoubleValue ¶
type DoubleValue float64
type HasTableFqn ¶
type HasTableFqn interface {
TableFqn() DwhFqn
}
type IgnoredValue ¶
type IgnoredValue struct{}
type NoEnoughPermissionsError ¶
type NoEnoughPermissionsError struct {
Err error
}
func NewNoEnoughPermissionsError ¶
func NewNoEnoughPermissionsError(err error) *NoEnoughPermissionsError
func (*NoEnoughPermissionsError) Error ¶
func (r *NoEnoughPermissionsError) Error() string
type SchemaColumnField ¶
type SchemaColumnField struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Human readable name of the column as present in dbt or data warehouse.
HumanName string `protobuf:"bytes,2,opt,name=human_name,json=humanName,proto3" json:"human_name,omitempty"`
// Native data type of the column as present in data warehouse.
NativeType string `protobuf:"bytes,4,opt,name=native_type,json=nativeType,proto3" json:"native_type,omitempty"`
// Description of the column
Description *string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
// Ordinal position of the column in the table, starting from 1
OrdinalPosition int32 `protobuf:"varint,6,opt,name=ordinal_position,json=ordinalPosition,proto3" json:"ordinal_position,omitempty"`
// Indicates that the column type could be used as a struct/json in a data warehouse
IsStruct bool `protobuf:"varint,7,opt,name=is_struct,json=isStruct,proto3" json:"is_struct,omitempty"`
// Indicates that the column is a repeated field in a data warehouse (e.g. array)
IsRepeated bool `protobuf:"varint,8,opt,name=is_repeated,json=isRepeated,proto3" json:"is_repeated,omitempty"`
// Fields inside of the struct/record like column
Fields []*SchemaColumnField `protobuf:"bytes,9,rep,name=fields,proto3" json:"fields,omitempty"`
}
type Scrapper ¶
type Scrapper interface {
DialectType() string
SqlDialect() sqldialect.Dialect
IsPermissionError(err error) bool
ValidateConfiguration(ctx context.Context) (warnings []string, err error)
QueryCatalog(ctx context.Context) ([]*CatalogColumnRow, error)
QueryTableMetrics(ctx context.Context, lastMetricsFetchTime time.Time) ([]*TableMetricsRow, error)
QuerySqlDefinitions(ctx context.Context) ([]*SqlDefinitionRow, error)
QueryTables(ctx context.Context) ([]*TableRow, error)
QueryDatabases(ctx context.Context) ([]*DatabaseRow, error)
QuerySegments(ctx context.Context, sql string, args ...any) ([]*SegmentRow, error)
QueryCustomMetrics(ctx context.Context, sql string, args ...any) ([]*CustomMetricsRow, error)
// This will close underlying execer, such scrapper can't be used anymore
Close() error
}
type SegmentRow ¶
type SegmentValue ¶ added in v0.1.7
type SqlDefinitionRow ¶
type SqlDefinitionRow struct {
Instance string `db:"instance" json:"instance" ch:"instance" bigquery:"instance"`
Database string `db:"database" json:"database" ch:"_database" bigquery:"database"`
Schema string `db:"schema" json:"schema" ch:"schema" bigquery:"schema"`
Table string `db:"table" json:"table" ch:"table" bigquery:"table"`
IsView bool `db:"is_view" json:"is_view" ch:"is_view" bigquery:"is_view"`
Sql string `db:"sql" json:"sql" ch:"sql" bigquery:"sql"`
}
func (SqlDefinitionRow) TableFqn ¶
func (r SqlDefinitionRow) TableFqn() DwhFqn
type TableMetricsRow ¶
type TableMetricsRow struct {
Instance string `db:"instance" json:"instance" ch:"instance" bigquery:"instance"`
Database string `db:"database" json:"database" ch:"_database" bigquery:"database"`
Schema string `db:"schema" json:"schema" ch:"schema" bigquery:"schema"`
Table string `db:"table" json:"table" ch:"table" bigquery:"table"`
RowCount *int64 `db:"row_count" json:"row_count" ch:"row_count" bigquery:"row_count"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at" ch:"updated_at" bigquery:"updated_at"`
SizeBytes *int64 `db:"size_bytes" json:"size_bytes" ch:"size_bytes" bigquery:"size_bytes"`
}
func (TableMetricsRow) TableFqn ¶
func (r TableMetricsRow) TableFqn() DwhFqn
type TableRow ¶
type TableRow struct {
Instance string `db:"instance" json:"instance" ch:"instance" bigquery:"instance"`
Database string `db:"database" json:"database" ch:"_database" bigquery:"database"`
Schema string `db:"schema" json:"schema" ch:"schema" bigquery:"schema"`
Table string `db:"table" json:"table" ch:"table" bigquery:"table"`
TableType string `db:"table_type" json:"table_type" ch:"table_type" bigquery:"table_type"`
Description *string `db:"description" json:"description" ch:"description" bigquery:"description"`
Tags []*Tag `db:"tags" json:"tags"`
IsView bool `db:"is_view" json:"is_view" ch:"is_view"`
IsTable bool `db:"is_table" json:"is_table" ch:"is_table"`
}
type Tag ¶
type WithSetInstance ¶
type WithSetInstance interface {
SetInstance(instance string)
}
Click to show internal directories.
Click to hide internal directories.