如何解决PygramETL查找提供了MemoryView错误
import pymonetdb
import pygrametl
import psycopg2
from pygrametl.tables import CachedDimension,BulkDimension,Dimension,FactTable
from pygrametl.datasources import sqlSource
##Connection to PostGres
connectionPostGres = psycopg2.connect(host="localhost",database="postgres",user="postgres",password="tekihcan")
connection = pymonetdb.connect(username="monetdb",password="monetdb",hostname="localhost",database="demo")
connectMonet = pygrametl.ConnectionWrapper(connection)
date_dim = CachedDimension(name='date_dim',key='d_date_sk',attributes=[
'd_date_id','d_date','d_month_seq','d_week_seq','d_quarter_seq','d_year','d_dow','d_moy','d_dom','d_qoy','d_fy_year','d_fy_quarter_seq','d_fy_week_seq','d_day_name','d_quarter_name','d_holiday','d_weekend','d_following_holiday','d_first_dom','d_last_dom','d_same_day_ly','d_same_day_lq','d_current_day','d_current_week','d_current_month','d_current_quarter','d_current_year'
],lookupatts = ['d_date_id'])
Customer_address = CachedDimension(name = 'customer_address',key = 'ca_address_sk',attributes = [
'ca_address_id','ca_street_number','ca_street_name','ca_street_type','ca_suite_number','ca_city','ca_county','ca_state','ca_zip','ca_country','ca_gmt_offset','ca_location_type'
],lookupatts = ['ca_address_id'])
Customer = CachedDimension(name = 'customer',key = 'c_customer_sk',attributes = [
'c_customer_id','c_current_cdemo_sk','c_current_hdemo_sk','c_current_addr_sk','c_first_shipto_date_sk','c_first_sales_date_sk','c_salutation','c_first_name','c_last_name','c_preferred_cust_flag','c_birth_day','c_birth_month','c_birth_year','c_birth_country','c_login','c_email_address','c_last_review_date_sk'
],lookupatts = ['c_customer_sk'] )
def main():
for row in resultsSource:
date_dim.insert(row)
connectMonet.commit()
for row in Customer_address_source:
Customer_address.insert(row)
connectMonet.commit()
for row in Customer_source:
if row['c_first_shipto_date_id'] in (None,' '):
row['d_date_sk'] = ' '
else:
date_sk1 = memoryview(date_dim.lookup(row,{"d_date_id":"c_first_shipto_date_id"}))
row['d_date_sk'] = date_sk1
if row['c_first_sales_date_id'] in (None,' '):
row['d_date_sk'] = ' '
else:
date_sk2 = date_dim.lookup(row,{"d_date_id":"c_first_sales_date_id"})
row['d_date_sk'] = date_sk2
row['ca_address_sk'] = Customer_address.lookup(row,{"ca_address_id":"c_address_id"})
Customer.insert(row)
connectMonet.commit()
我遇到了与memoryview相关的错误-ProgrammingError:类型
我了解不支持memoryview,但我无法理解的是如何禁用memoryview的使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。