OWB ETL设计与部署在Windows上的步骤

需积分: 11 6 下载量 34 浏览量 更新于2024-09-12 收藏 318KB DOCX 举报
"本文主要介绍了如何使用Windows上的Oracle Warehouse Builder (OWB) 客户端进行ETL(Extract, Transform, Load)设计和部署,针对的是连接到运行在Linux环境下的Oracle服务器的情况。" 在OWB ETL使用流程中,首先需要确保控制中心服务以及控制中心代理能够正常运行。这可以通过在Windows上启动OWB目录下的`StartorStopControlCenterService`来实现。在"代理"选项卡中配置相关参数,启动控制中心代理,随后在"控制中心"选项卡中输入OWBSYS的密码和Oracle服务器信息,启动服务。当"当前状态"显示为已启动时,表明设置成功。 接着,为了进行ETL操作,需要授权目标账户。这通常涉及使用`sys`用户登录`sqlplus`,并执行特定的授权脚本`grant_upgrade_privileges.sql`,该脚本位于OWB的安装目录下。在这个脚本中,需要指定将要授权的用户名,赋予其必要的权限以执行ETL任务。 然后,启动OWB的设计中心,通过提供在RepositoryAssistant中创建的工作区所有者和Oracle服务器信息进行登录。在设计中心的"全局"选项卡中,可以创建新的用户或者选择已存在的数据库用户作为数据仓库目标用户。在向导的指导下,选择要注册的数据库用户,并确认是否创建相应的位置,这样会自动在"位置导航器"中创建与用户对应的数据库连接。 创建源数据库位置是ETL设计的关键步骤。在设计中心的"位置导航器"中,通过"新建Oracle位置"来定义数据源。这使得OWB能够连接到Oracle数据库,从而可以从源数据库抽取数据,进行转换,最后加载到目标仓库。 这个流程总结了使用OWB客户端进行ETL工作流的基本步骤,涵盖了从设置环境、授权用户到设计和部署ETL作业的关键环节。对于在Windows环境下进行跨平台ETL操作的开发者来说,这个流程提供了清晰的指导。通过熟练掌握这些步骤,可以高效地管理和执行Oracle服务器上的数据集成任务。
2009-08-21 上传
const int BLOCK_LINE = 20;//当前地图的行数 const int BLOCK_ROW = 10;//当前地图的列数 class CBlock { public: CBlock(void); ~CBlock(void); private: // 当前方块形状 int m_BlockShape; //下一个方块形状 int m_nextBlockShape; //当前方块状态 int m_BlockState; //等级 int m_BlockLevel; //当前可消行数 int m_BlockCurDelLine; //游戏是否在执行 bool m_blockRunning; //当前方块位置 POINT m_BlockPos[4]; //下个方块位置 POINT m_nextBlockPos[4]; //当前的屏幕状态 //BLOCK_LINE是行数,BLOCK_ROW是列数 int m_Blockmap[BLOCK_LINE][BLOCK_ROW]; public: // 初始化游戏 void BlockInit( void ); private: // 记录方块图形 CBitmap m_bmpBlock[7]; public: //创建一个新的方块出来,这里只给方块形状赋值 void CreateNewBlock(void); private: //这里给方块位置赋值, //shape是形状, pt[]是用来接收方块坐标的(方块形状的排列坐标)数组 //xPos是偏移量,就是方块显示位置和方块显示的框的最左边的差 void MakeNewBlock(int shape, POINT pt[], int xPos); public: //将方块画在对应的DC上 void DrawBlock(CDC* pDC); //方块的下落过程,主要部分 void BlockDropDown(CDC* pDC); private: // 隐藏方块 void HideBlock(CDC* pDC); // 背景图片变量 CBitmap m_bmpBKGND; public: // 画下个方块的框框 void DrawNextBlock( CDC* pDC ); //方块左移 void BlockLeft(CDC* pDC); //方块右移 void BlockRight(CDC* pDC); //方块下移 void BlockFastDown(CDC* pDC); //方块变形 void ChangeState(CDC* pDC); // 消除一行 //pDC是传入的DC //LineNum是消除的行从第几行开始(我这里是最上面为0,最下面为19) //start是 游戏是否是要把消除行以上的都置0,我是用在OnDraw()里,用来重画屏幕的, void DeleteLine(CDC* pDC, int LineNum, bool start); // 游戏是否结束,true=结束了 bool BlockGameOver(void); // 计分板 //del是决定是否是已消一行的 void BlockScore(int del, CDC* pDC); //返回是否升级了,true=升级了 bool BlockLevelUp(void); //返回下落速度 int BlockSpeed(void); };