Teradata Python 宏变量
Teradata Python Macro Variable
我已经开始使用 python 使用 PyTd 从 Teradata 提取查询。来自 SAS,我想知道是否有一种类似于 SAS 宏变量的方法来传递 parameters/variables。我们公司的每个州都有不同的数据库,我 运行 相同的查询但每次都需要更新状态。下面的示例我想用 {macroVariable} 替换每个状态,循环并 运行ning 一个新查询,然后我会修复所有查询。我找到了一些使用 for 循环的示例,但无法完全按照我需要的方式工作。
import teradata as td
import pandas as pd
from teradata import tdodbc
udaExec = td.UdaExec(appConfigFile="udaexec.ini")
with udaExec.connect("${dataSourceName}") as session:
query1 = """{macroVariable}_db_1;"""
query2 = """select * from table"""
session.execute(query1)
session.execute(query2)
df = pd.read_sql(query2, session)
我没有用过 PYTD,但我用过 sql 炼金术,这种类型的编码对我有用。让我举个例子给你看。
import sqlalchemy as sa
import pandas as pd
td_engine = '%s://%s:%s@%s/%s'%(td_driver, username, password, td_host,dbname)
td_conn = sa.create_engine(td_engine)
x = '202012' # your variable (similar to SAS macro variable) that you define outside of teradata envrionment
td_sql = ''' select top 10* from customer_{}'''.format(x)
df = pd.read_sql(td_sql, td_conn)
我已经开始使用 python 使用 PyTd 从 Teradata 提取查询。来自 SAS,我想知道是否有一种类似于 SAS 宏变量的方法来传递 parameters/variables。我们公司的每个州都有不同的数据库,我 运行 相同的查询但每次都需要更新状态。下面的示例我想用 {macroVariable} 替换每个状态,循环并 运行ning 一个新查询,然后我会修复所有查询。我找到了一些使用 for 循环的示例,但无法完全按照我需要的方式工作。
import teradata as td
import pandas as pd
from teradata import tdodbc
udaExec = td.UdaExec(appConfigFile="udaexec.ini")
with udaExec.connect("${dataSourceName}") as session:
query1 = """{macroVariable}_db_1;"""
query2 = """select * from table"""
session.execute(query1)
session.execute(query2)
df = pd.read_sql(query2, session)
我没有用过 PYTD,但我用过 sql 炼金术,这种类型的编码对我有用。让我举个例子给你看。
import sqlalchemy as sa
import pandas as pd
td_engine = '%s://%s:%s@%s/%s'%(td_driver, username, password, td_host,dbname)
td_conn = sa.create_engine(td_engine)
x = '202012' # your variable (similar to SAS macro variable) that you define outside of teradata envrionment
td_sql = ''' select top 10* from customer_{}'''.format(x)
df = pd.read_sql(td_sql, td_conn)