mirror of
https://github.com/dbt-labs/dbt-snowflake
synced 2025-12-17 19:31:31 +00:00
Add snowflake telemetry. (#1209)
* Add snowflake telemetry. * Add changelog. * Temporary dev branch switch. * Correct version import * bump ci * Temporary dev branch switch. * Temporary dev branch switch take 2. * Alter to meet new base schema changes. * Fix input args. * Change field name. --------- Co-authored-by: Colin Rogers <111200756+colin-rogers-dbt@users.noreply.github.com>
This commit is contained in:
6
.changes/unreleased/Under the Hood-20241016-035544.yaml
Normal file
6
.changes/unreleased/Under the Hood-20241016-035544.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Under the Hood
|
||||
body: Add telemetry function
|
||||
time: 2024-10-16T03:55:44.144174-07:00
|
||||
custom:
|
||||
Author: versusfacit
|
||||
Issue: "301"
|
||||
@@ -4,6 +4,7 @@ from typing import Mapping, Any, Optional, List, Union, Dict, FrozenSet, Tuple,
|
||||
from dbt.adapters.base.impl import AdapterConfig, ConstraintSupport
|
||||
from dbt.adapters.base.meta import available
|
||||
from dbt.adapters.capability import CapabilityDict, CapabilitySupport, Support, Capability
|
||||
from dbt.adapters.contracts.relation import RelationConfig
|
||||
from dbt.adapters.sql import SQLAdapter
|
||||
from dbt.adapters.sql.impl import (
|
||||
LIST_SCHEMAS_MACRO_NAME,
|
||||
@@ -25,6 +26,7 @@ from dbt.adapters.snowflake.relation_configs import (
|
||||
SnowflakeRelationType,
|
||||
TableFormat,
|
||||
)
|
||||
|
||||
from dbt.adapters.snowflake import SnowflakeColumn
|
||||
from dbt.adapters.snowflake import SnowflakeConnectionManager
|
||||
from dbt.adapters.snowflake import SnowflakeRelation
|
||||
@@ -419,3 +421,18 @@ CALL {proc_name}();
|
||||
def debug_query(self):
|
||||
"""Override for DebugTask method"""
|
||||
self.execute("select 1 as id")
|
||||
|
||||
@classmethod
|
||||
def _get_adapter_specific_run_info(cls, config: RelationConfig) -> Dict[str, Any]:
|
||||
table_format: Optional[str] = None
|
||||
if (
|
||||
config
|
||||
and hasattr(config, "_extra")
|
||||
and (relation_format := config._extra.get("table_format"))
|
||||
):
|
||||
table_format = relation_format
|
||||
|
||||
return {
|
||||
"adapter_type": "snowflake",
|
||||
"table_format": table_format,
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# install latest changes in dbt-core
|
||||
git+https://github.com/dbt-labs/dbt-core.git#egg=dbt-core&subdirectory=core
|
||||
git+https://github.com/dbt-labs/dbt-adapters.git
|
||||
git+https://github.com/dbt-labs/dbt-adapters.git@ADAP-301/add-adapter-telemetry
|
||||
git+https://github.com/dbt-labs/dbt-adapters.git#subdirectory=dbt-tests-adapter
|
||||
git+https://github.com/dbt-labs/dbt-common.git
|
||||
|
||||
|
||||
2
setup.py
2
setup.py
@@ -58,7 +58,7 @@ setup(
|
||||
include_package_data=True,
|
||||
install_requires=[
|
||||
"dbt-common>=1.10,<2.0",
|
||||
"dbt-adapters>=1.7,<2.0",
|
||||
"dbt-adapters @ git+https://github.com/dbt-labs/dbt-adapters.git@ADAP-301/add-adapter-telemetry",
|
||||
"snowflake-connector-python[secure-local-storage]~=3.0",
|
||||
# add dbt-core to ensure backwards compatibility of installation, this is not a functional dependency
|
||||
"dbt-core>=1.8.0",
|
||||
|
||||
27
tests/unit/test_adapter_telemetry.py
Normal file
27
tests/unit/test_adapter_telemetry.py
Normal file
@@ -0,0 +1,27 @@
|
||||
from unittest import mock
|
||||
|
||||
import dbt.adapters.snowflake.__version__
|
||||
|
||||
from dbt.adapters.snowflake.impl import SnowflakeAdapter
|
||||
from dbt.adapters.base.relation import AdapterTrackingRelationInfo
|
||||
|
||||
|
||||
def test_telemetry_with_snowflake_details():
|
||||
mock_model_config = mock.MagicMock()
|
||||
mock_model_config._extra = mock.MagicMock()
|
||||
mock_model_config._extra = {
|
||||
"adapter_type": "snowflake",
|
||||
"table_format": "iceberg",
|
||||
}
|
||||
|
||||
res = SnowflakeAdapter.get_adapter_run_info(mock_model_config)
|
||||
|
||||
assert res.adapter_name == "snowflake"
|
||||
assert res.base_adapter_version == dbt.adapters.__about__.version
|
||||
assert res.adapter_version == dbt.adapters.snowflake.__version__.version
|
||||
assert res.model_adapter_details == {
|
||||
"adapter_type": "snowflake",
|
||||
"table_format": "iceberg",
|
||||
}
|
||||
|
||||
assert type(res) is AdapterTrackingRelationInfo
|
||||
Reference in New Issue
Block a user