® DRAFT Sybase, Inc. One Sybase Drive Dublin, CA 94568 www.sybase.com Data Integration with Sybase Avaki Studio Release 7.
DOCUMENT ID: DC00574-01-0700-01 LAST REVISED: August 2006 Copyright © 2002 – 2006 Sybase, Inc. All rights reserved. This publication pertains to Sybase software and to any subsequent release until otherwise indicated in new editions or technical notes. Information in this document is subject to change without notice. The software described herein is furnished under a license agreement, and it may be used or copied only in accordance with the terms of that agreement. To order additional documents, U.S.
Table of contents Preface vii Audience vii Organization viii Related documentation ix How to contact Avaki support at Sybase, Inc. Chapter 1 View models in Avaki Studio x 1 Background: Avaki concepts 2 What is a view model? 2 Avaki Studio vs.
The palette 20 The view model editor 21 Adding and removing objects View model tabs 21 The metadata model editor 22 The bottom pane 22 Table schema view 22 Dependencies view 22 Console view 22 View Model Parameters view Setting preferences 23 Working with Avaki Studio 26 Chapter 3 Creating view models 21 23 29 The exercise 30 The HR data service 30 The database connectors 31 Tasks in this tutorial: the to-do list 31 Creating database connectors 32 Creating database operations 38 Using the view model wi
Red borders: Errors in your view model 60 Working with schemas 60 Showing and hiding elements’ schemas 60 Specifying schemas for operators 60 Using global parameters 63 Displaying global parameters 63 Adding global parameters 64 Modifying global parameters 65 Deleting global parameters 65 Reordering global parameters 65 Using expressions within Avaki Studio 66 Simple expressions 66 Boolean expressions 66 Complex expressions 67 Expressions and JavaScript 67 JavaScript resources 67 Accessing columns from inco
Chapter 5 Metadata modeling 77 About metadata models 78 Importing metadata models 79 Creating and editing metadata models 85 Mapping metadata models to Avaki objects Deploying metadata models 91 Deriving metadata models 93 Deleting metadata models 94 Undeploying metadata models 95 Chapter 6 Managing the data catalog 88 97 Modifying ACLs 98 Managing attributes 101 Managing categories 104 Creating and displaying categories 104 Adding objects to categories 105 Removing objects from categories 106 Deleti
Generator properties 118 Entering iteration control code 118 Defining the output columns 119 Group By 121 Connections 121 Performance notes 122 Group By properties 122 Specifying groups 122 Specifying aggregate columns 123 Input Source 125 Connections 125 Input Source Properties 126 Configuring the source 126 Configuring the transform 136 Configuring error handling 143 Mapping input parameters 144 Intersection 148 Connections 148 Performance notes 148 Intersection properties 148 Iterator 149 Connections 150
Order By properties 160 Specifying the sort criteria 160 Projection 161 Connections 161 Performance notes 161 Projection properties 162 Defining projection columns 162 Removing duplicates 163 Result 164 Connections 164 Result properties 164 Select 165 Connections 165 Select properties 165 Splitter 166 Connections 166 Splitter properties 167 Caching result sets 167 Union 168 Connections 168 Performance notes 168 Union properties 169 Removing duplicates 169 Update 169 Connections 170 Performance notes 170 Upd
Preface This guide, Data Integration with Sybase Avaki Studio, explains how to use Avaki Studio software. With Studio, you can provision data sources into the Avaki data catalog and create data services that combine and transform your data. You can also manage your data catalog. Note This book and the product’s user interfaces refer to Sybase Avaki EII software as Avaki or Avaki Data Grid.
Preface all, while others require partial to full working knowledge. In Avaki Studio, you can employ JavaScript in the following circumstances: • Several operators allow or require you to enter JavaScript control expressions. In many cases, however, you can construct the expression you need using elements provided in the menus. See Chapter 7, “Operator reference,” for details on the operators that accept JavaScript expressions.
Related documentation Related documentation These manuals make up the Avaki documentation set: • Sybase Avaki EII Overture • Sybase Avaki EII Administration Guide (includes installation instructions) • Data Integration with Sybase Avaki Studio • Sybase Avaki EII Provisioning and Advanced Data Integration Guide • Sybase Avaki EII API Guide • Sybase Avaki EII Command Reference The manuals are included, in PDF format, on the CD with Avaki software.
Preface How to contact Avaki support at Sybase, Inc. For general information about Sybase technical support, see the Customer Service Reference Guide at http://www.sybase.com/support/aboutsupport/guide/csrg Please contact us with any questions or difficulties you encounter. By telephone In North America, call toll free: 1-800-8SYBASE Outside North America, follow the link below to see a list of Sybase offices and phone numbers around the world. http://www.sybase.
Chapter 1 View models in Avaki Studio Avaki Studio is a graphical, metadata-driven modeling tool for data integration that lets you combine data from heterogeneous data sources. With Avaki Studio, you can build view models by dragging and dropping input sources, operators, and output targets. A view model is a sequence of operations that combine or transform data from one or more sources.
View models in Avaki Studio Background: Avaki concepts Before tackling the task of creating a view model, you should be familiar with some Avaki concepts and terminology. This information can be found in the Sybase Avaki EII Overture.
What is a view model? Thus, a view model consists of • Zero or more input sources • Zero or more operators to manipulate the data • Exactly one Result element Avaki Studio vs. writing your own data service plug-in Because of its graphical nature and rich user interface, Studio is the preferred way to create many data services.
View models in Avaki Studio Data flow Discussions of view model operators and especially of variables rely on the notion that in a view model, data flows toward the result—and generally from left to right. We use the terms upstream and downstream to indicate direction in a view model: • Upstream: away from the Result element • Downstream: towards the Result element Thus, in a view model with two Select operators, the downstream Select is the one closer to the Result element.
What is a view model? Everywhere you can enter JavaScript expressions, you have access to an object called variables, which in turn gives you access to parameters, control variables for downstream operators, and columns in the input result sets. Studio provides contextual menus for constructing JavaScript expressions. The menus let you click to select elements like column names, operators, global parameters, and predefined functions.
View models in Avaki Studio Operators Avaki Studio provides a selection of elements and operators you can use to manipulate data in a view model. The operators are described briefly here. For details on how the operators work and how to use them, see Chapter 7‚ “Operator reference.” Beginning and ending data flows.
Operators • Join Given two input result sets that share a common column, Join combines rows and produces a new result set. Join supports Inner, Outer-left, Outer-right, and Outer-full join types, as well as three join algorithms: Sort Merge Join, Hash Join, and Nested Loop Join. • Union Given two input result sets with identical schemas, Union generates a single result set that includes everything in both inputs.
View models in Avaki Studio 8 Data Integration with Sybase Avaki Studio
Chapter 2 Getting started with Avaki Studio Read this chapter for instructions on starting Avaki Studio for the first time and for general information about the tools Studio provides. In this chapter: • “Installing Avaki Studio,” below • “Starting Avaki Studio” on page 10 • “Creating a project” on page 14 • “The Avaki perspective: A tour” on page 17 • “Setting preferences” on page 23 • “Working with Avaki Studio” on page 26 Installing Avaki Studio Avaki Studio runs on Windows 2003 and Windows XP.
Getting started with Avaki Studio Starting Avaki Studio You can launch Avaki Studio using the Avaki program group or shortcut that was created during installation. By default, the installer creates an Avaki Data Grid program group in the Programs portion of your Windows Start menu. To start Studio, select Start > Programs > Avaki Data Grid 7.0 > Avaki Studio You can also start Studio from the command line.
Starting Avaki Studio In the workspace directory, Studio creates a subdirectory for each project. Files of the following types can be found in the workspace project directories: Filename extension Purpose .avm Studio creates an Avaki view model (.avm) file for each view model. .amm Studio creates an Avaki metadata model (.amm) file for each metadata model. .js Studio creates a JavaScript (.js) file for each model; the .js file has the same base name as the model’s .avm file.
Getting started with Avaki Studio The Resource perspective After you specify a workspace directory, a window opens to display the Resource perspective, which is the opening screen for Eclipse Workbench. Background: Eclipse Workbench concepts Avaki Studio is built on the Eclipse Workbench platform, version 3.1.2. Some of the tools and concepts you’ll use to work on Avaki view models originate in Workbench: Workspace. A container for projects.
Starting Avaki Studio We strongly recommend that you look at the Eclipse documentation, which is available in Studio. Some common tasks, including importing and renaming Studio projects, are performed using Eclipse tools. To view Eclipse’s Workbench User Guide, select Help Contents from the Help menu. In the Contents pane on the left side of the resulting help window, click Workbench User Guide.
Getting started with Avaki Studio Creating a project To use the tools provided by Avaki Studio, you must open the Avaki perspective. In the Avaki perspective, you can create a project and start working on your first view model. From the Resource perspective, follow these steps to open the Avaki perspective and create a new project: 14 Step 1 Pull down the Window menu and select Open Perspective > Avaki. The Resource perspective changes to the Avaki perspective.
Creating a project New Avaki Studio Project wizard appears. Step 3 In the Project name field, enter a name for your project. By default, Studio creates a subdirectory with this name in your workspace directory—this is your project directory. Step 4 (Optional) To specify an alternative location for the project directory, click to uncheck the “Use default” box, then enter or browse to the new location. Step 5 In the File Name box, enter a name for the model (.avm) file for the project.
Getting started with Avaki Studio Step 6 Click Finish to create the project. The project includes a starter view model consisting of a result. Red borders. When an element (an input source, operator, or result) in the view model is not properly set up or connected to other elements, Studio outlines the problem element in red. If you mouse over the element, Studio displays an explanation of the problem.
The Avaki perspective: A tour The Avaki perspective: A tour This section explains the purposes of the panes and other elements in the Avaki perspective window. Toolbar Navigator Data Catalog View Palette View model pane Bottom pane The toolbar The icons in the toolbar at the top of the window let you perform tasks like creating new view models or projects, saving the current view model, and connecting to or disconnecting from the Avaki server.
Getting started with Avaki Studio To open a saved view model, expand the view model’s project folder in the navigator and double-click on the .avm file (myviewmodel.avm, for example). The view model opens in a new tab in the view model pane; to close it, click the X on the tab. To save the view model, select Save or Save As... from the File menu, or enter Ctrl–s. The data catalog view The data catalog view shares the left-hand pane with the Navigator.
The Avaki perspective: A tour good places to start are the /GeneratedViews, /Shares, and /WSDLs folders. (For more information on the contents of the default directories in the data catalog, see the Avaki Overture.) Once you’ve found the input source you want, you can drag and drop it from the Data Catalog view to the view model pane. Studio automatically creates a corresponding Input Source element in the view model.
Getting started with Avaki Studio Managing the data catalog You can use the Data Catalog view to manage the data catalog. Select an item of interest in the catalog and right-click for a context menu. You can: • Display information about items in the catalog, including their type (such as data service or database operation), qualified name, SQL statement (for a database oper- ation), parameters, data expiration for caching, and run-as user. • Add and delete categories in the data catalog.
The Avaki perspective: A tour The view model editor The view model editing pane lets you create, display, and manipulate the view models in the current project. For detailed information on creating and editing view models, see Chapter 4‚ “The view model editor”. Adding and removing objects Use the buttons in the palette to add objects to the view model. (See “The palette,” above.) To remove an object, select it and click right. Choose Delete from the menu.
Getting started with Avaki Studio The metadata model editor The metadata model editing pane lets you create, display, and manipulate the metadata (schema) models in the current project. For detailed information on creating and editing metadata models, see Chapter 5‚ “Metadata modeling”. The bottom pane The bottom pane of the Avaki perspective window displays view model parameters, the console, dependencies, and table schemas.
Setting preferences View Model Parameters view The View Model Parameters tab lets you create and manipulate global parameters for the current view model. Use the buttons (upper right) to add , remove , or mod- ify global parameters, or to move parameters up or down in the list. For details on working with parameters, see “Using global parameters” on page 63. Setting preferences This section explains how to set preferences in Avaki Studio.
Getting started with Avaki Studio Note Be sure to click Apply on each page of the Preferences dialog when you make changes. If you don’t, you’ll lose any changes to that page. Step 6 Expand the Avaki entry in the browsing pane and select Authentication. Studio connects to your GDC (if possible) and displays the authentication preferences dialog. Note Fill in the Authentication Service, Username, and Password fields only if you want to use the same values every time Studio logs in to the grid.
Setting preferences Step 9 Click Model Editor in the browser pane. Studio displays the Model preferences. Step 10 The Base Color field controls the color of the tabs at the top of elements in the view model. Click on the color sample to select from a palette of alternative colors. Step 11 The Code Font field controls the font in which Studio displays JavaScript code. Click on the Change button to select from a list of alternative fonts. Step 12 Click Apply to save your changes.
Getting started with Avaki Studio Working with Avaki Studio This section provides an overview of one kind of workflow in Avaki Studio. The process of building and deploying a view model is as follows: 1. 2. 3. Create a new view model. The view model is where you specify how your data service combines and transforms data. For instructions on creating view models, see “Using the view model wizard” on page 43. Create a database connector.
Working with Avaki Studio Projection to combine columns” on page 47. For additional information about operators, see Chapter 7‚ “Operator reference”. 7. Enter JavaScript expressions where needed, including control variables. • Most of the operators in Avaki Studio allow you to specify expressions that are evaluated at runtime to configure how your view model works. For more information, see “Using expressions within Avaki Studio” on page 66. • (Optional) Create a JavaScript include file.
Getting started with Avaki Studio 28 Data Integration with Sybase Avaki Studio
Chapter 3 Creating view models This chapter is a tutorial that walks you through the process of creating a view model in Avaki Studio and deploying your view model as a data service.
Creating view models The exercise In this tutorial, we’ll create a data service for the human resources department of a large organization. The HR coordinators who answer employees’ questions about compensation, benefits, and transfers need quick access to information about each person they talk to, and the information is located in two different relational databases.
The exercise • HIREDATE: The date the employee was hired • SAL: The employee’s salary • COMM: The employee’s commission rate The database connectors The required information resides in two databases.
Creating view models Creating database connectors To extract data from a relational database, your view model needs a pair of Avaki services: a database operation to select the data, and a database connector to access the database. Database connectors are typically configured by database administrators. Follow these steps to create a database connector in Avaki Studio. 32 Step 1 To connect Studio to a grid server, pull down the Avaki menu and select Connect to Server.
Creating database connectors Step 3 Fill in the form: • Connector Name: Enter a name for this database connector. For this tutorial, we’ll use the name dept_db. Note: Do not include spaces in the name. • Description: Optional. Enter some descriptive information about this database connector and the database it accesses. • Avaki Server: Select the Avaki grid server on which this database connector will run. • JDBC Driver Class: Enter the class name of your database JDBC driver.
Creating view models Step 4 Click Next. The second page of the form appears: Step 5 Fill in the form: • Name: Optional. Enter the database administrator’s first and last name. • Email: Optional. Enter the database administrator’s email address. • Phone: Optional. Enter the database administrator’s telephone number. • Organization: Optional. Enter the name of the department or group to which the database administrator belongs.
Creating database connectors Step 6 Click Next to display the next page of the new database connector form. Step 7 Fill in the form: • Allow ad-hoc queries, schema browsing, and SQL view provisioning: Select this option if you want to enable users to perform direct SQL queries against the database, browse the database’s metadata, or provision SQL views. Ad-hoc queries must run through an existing Avaki database connector.
Creating view models thought of as single-use database operations. You can run an ad-hoc query using either the CLI or the JDBC driver. For information about using the CLI to run an ad-hoc query, see the Sybase Avaki EII Command Reference. For information about using a JDBC driver to run an ad-hoc query, see the Sybase Avaki EII API Guide. • Allow database identity mappings: Check this box if database identity mappings are allowed on this database connector.
Creating database connectors for the database vendor’s JDBC driver. (For purposes of the tutorial, leave this field blank.) These XA drivers have been tested with Avaki: — For Sybase ASE: com.sybase.jdbc3.jdbc.SybXADataSource (ASE 15.0 with jConnect 6.05) — For Oracle 10g: oracle.jdbc.xa.client.OracleXADataSource (Oracle 10g release 10.1.0.2.0 with JDBC driver version 10.2.0.1.0) — For MySQL: com.mysql.jdbc.jdbc2.optional.MysqlXADataSource (MySQL 5.0 with MySQL Connector/J 5.
Creating view models Step 8 Click Finish to save the settings you’ve entered. Avaki Studio creates the database connector, tests it, and displays the results. You can find the new database connector in the data catalog under Categories/ViewLibrary/DatabaseServices//.. Later, if you want to modify the database connector, find it in the data catalog view, right-click it, and select Edit from the context menu.
Creating database operations Step 3 (Optional) To locate your database connectors in the data catalog view, expand Categories > ViewLibrary > DatabaseServices. The database connectors appear as folders—here they’re called dept_db and emp_db. Step 4 To launch the Database Operation Wizard, pull down the File menu and select New > Database Operation. Step 5 From the Domain pull-down, select the Avaki domain in which the database connector you want to use resides.
Creating view models Step 6 In the Database Connector field, select a database connector, then click Next. Step 7 In the Name field, enter a name for the database operation you’re creating. Step 8 (Optional) In the Description field, enter a description of the database operation.
Creating database operations Step 13 Click Next. (Do not check the “Calls a stored procedure” or “Supports batch operations” boxes.) Step 14 For the EMP database operation, which has a parameter, use the pull-down menu to choose the data type VARCHAR. Step 15 Click Next.
Creating view models Step 16 For the EMP database operation, which has a parameter, enter a value that Studio can use when it executes the database operation to generate the schema. (The value might be the name of an employee in the database.) Step 17 Click Finish. Studio creates the new database operation. (You must refresh the data catalog view to see it.) Repeat this procedure to create the DEPT database operation, which has no parameters.
Using the view model wizard Using the view model wizard If you haven’t created a Studio project yet, see “Creating a project” on page 14. To complete this procedure, you must have a project to which you can add your view model. The view model is where you specify how your data service combines and transforms data. To set up a new view model, follow these steps. Step 1 Pull down the File menu and select New > View Model. The view model wizard appears.
Creating view models Configuring input sources In our view model, Input Source elements represent the database operations that provide input to the data service. Follow these steps to configure input sources. Step 1 To create an Input Source element, drag the database operation from the data catalog view into the view model pane. Studio creates an Input Source element with the same name as the database operation. Step 2 Double-click the Input Source element to open the Input Source Properties dialog.
Joining result sets Joining result sets To create a Join operator to combine the result sets from the two input sources, follow these steps. Step 1 Click Join in the Operators section of the palette (immediately to the left of the view model pane). Step 2 Click in the view model pane just to the right of the two Input Source elements. A Join operator appears. Step 3 Before you can configure the Join operation, you must connect it to the input sources. Click Connection in the palette.
Creating view models Step 6 Double-click the Join operator to open the Join Properties dialog. Step 7 Select the Sort Merge Join algorithm, the Inner join type, and set the outer table to getEmpGivenName. Step 8 In the Columns area of the properties dialog, specify one or more pairs of columns whose values will be tested for equality. Each pair must include one column from the outer table and one from the inner table. In this case, the common column is called DEPTNO in both tables.
Using Projection to combine columns Using Projection to combine columns To create a Projection operator, follow these steps. Step 1 Click Projection in the Operators section of the palette (immediately to the left of the view model pane). Step 2 Click in the view model pane just to the right of the Join operator. A Projection operator appears. Step 3 Before you can configure the Projection operator, you must connect it to its input, the Join operator. Click Connection in the palette.
Creating view models Step 6 Double-click the Projection operator to open the Projection Properties dialog. Step 7 Click Project All to carry in the columns from the input result set. Studio creates and displays an output column for each column in the input. Step 8 Click Add to add a new column. Step 9 Click in the Name field of the new column and replace the default name with NameNumberJob.
Using Projection to combine columns Step 14 Use the Move Up button to move the NameNumberJob column the fourth position, as shown here: Step 15 Click the box for “Generate only distinct (non-duplicate) rows”. Step 16 Click OK to save the Projection Properties. Step 17 Select File > Save to save your view model.
Creating view models Testing the view model When your view model is complete, you can test it by selecting Execute Model from the Avaki menu. The Execute Model dialog appears. The Parameters tab provides fields where you enter parameter values required for the test execution. Debug Options tab provides checkboxes that enable you to control which debug options are displayed. • Enable tracing of model execution: Controls whether information about the text execution will be displayed.
Deploying the view model as a data service Deploying the view model as a data service Follow these steps to deploy your view model. After it’s deployed, you can find it in the data catalog viewer under Categories > ViewLibrary > DataServices. Step 1 Right-click in the view model pane and select Deploy Data Service from the popup menu. The Deploy Avaki View Model dialog appears. Step 2 (Optional) Enter a name the Data Service Name field if you don’t want to use the default name.
Creating view models Thinking ahead: load sharing for data service execution By default, a data service runs on the grid server where it was deployed. If you want data service execution to be shared among several grid servers, you or your grid administrator must configure execution service pooling. For instructions, see the Sybase Avaki EII Administration Guide.
Chapter 4 The view model editor Consult this chapter for general information on using Avaki Studio’s view model editor to create view models. In this chapter: • “Common features of view model components” on page 54 describes features common to all of the elements—input sources, operators, and result elements. • “Using global parameters” on page 63 describes how to add parameters to your model.
The view model editor Common features of view model components This section discusses features common to the various operators, input sources, and result elements. Creating components To build view models, you use the view model editor to create and manipulate objects that represent the elements in your model. These include input sources, various operators, and result elements. When you create a new view model, Studio automatically includes a Result.
Common features of view model components For example, to add an Order By operator to your model using the palette: Step 1 Open an Avaki view model file (double-click a .avm file in the Navigator in the left pane) or create a new one (see “Creating a project” on page 14 for instructions). Step 2 Select the Order By tool in the palette. If the “Operators” section of the palette is collapsed, click to open it, exposing the Order By tool.
The view model editor Step 3 Navigate in the data catalog view to the object you want to use as in input source. You can choose a database operation, a data service, or a file in the grid. (To create Input Source elements from HTTP requests or web services, use the tool in the palette, then see “Input Source” on page 125 for details on configuring the input source.) Step 4 Drag the object from the data catalog view into the view model editor where you want the Input Source object to appear.
Common features of view model components model. You might want to move elements around in order to make room for additional operators you want to add, for example, or to neaten up the model. Creating connections between elements To define the flow of data within a view model, you must connect the various elements together. The way elements are connected affects the way individual elements can be configured.
The view model editor Step 5 Click on the object the arrow should go to. If this object has more than one input connection point, make sure that the arrow is snapped to the correct one before you click. Step 6 If you decide you don’t want to connect the objects after all, press Escape or click a different tool in the palette to abort the connection. Properties dialogs Each element in your view model can be configured by accessing its properties dialog.
Common features of view model components To edit an element’s name: Step 1 Open the element’s properties dialog box by double-clicking or by right-clicking and choosing the Edit command. Step 2 Type a new name in the Name field. Step 3 Click OK to close the properties dialog box. Element descriptions You can annotate your model by adding descriptions to the elements it contains. This can help make the model easier to understand, especially if multiple people work with it.
The view model editor Red borders: Errors in your view model Your view model may have errors in it. Some of these may be because certain elements are not properly configured or connected. If Studio detects an error, it notifies you by making the border around the affected elements red. You can see what the problem is by moving your cursor over the element in question—Studio displays the error message in a tool tip. You must resolve all of these errors before you can execute or deploy the view model.
Common features of view model components characters (including spaces, punctuation, accented characters, and so forth) are not allowed. The name of each column in a given schema should be unique—having two columns in the same schema with the same name can cause Studio difficulty when trying to access the columns by name. Note If your schema has column names that do not conform to these norms, you must use the methods in the ResultSet object to access them by position (using a 1-based index).
The view model editor Precision and scale. The meaning of the precision and scale fields for a column depends on the column’s data type. Precision and scale are not applicable to all column types. The table below gives the meaning of precision and scale for the Studio column types to which they apply.
Using global parameters Using global parameters Some view models obtain all necessary input from database operations, data services, and other input sources. However, you will often want to provide parameters to your model that affect the way it functions. For example, a model that processes sales figures might require a parameter specifying the sales region you’re interested in.
The view model editor Adding global parameters To add a parameter to your model, click the Add Parameter button Global Parameter Properties dialog. to open the The fields are as follows: • Name: A name for the parameter. Make sure it conforms to the variable naming conventions (see “Element names” on page 58). • Type: Choose a type from the popup. Types are expressed in the SQL format, rather than as Java objects.
Using global parameters variables.global.State.length == 2 If you leave the Validation Expression field blank, Studio performs no validation for this parameter. • Validation Error Expression: (Optional) enter an expression that evaluates to an error message. The error message is returned whenever an invalid parameter value causes the validation expression to evaluate to false. Enclose any strings in double quotes. Refer to the value of the variable being validated by its fully qualified name: variables.
The view model editor Using expressions within Avaki Studio Most of the operators in Avaki Studio allow you to specify expressions that are evaluated at runtime in order to configure how your view model works. For the majority of cases, simple expressions that evaluate to a single value will suffice. Some of these are generic, while others must evaluate to a Boolean value. Studio’s more advanced operators, however, require more complex, multi-line expressions.
Using expressions within Avaki Studio • CurrentUser.isMemberOf("myDomain", "DefaultAuthService", "Grid", "Administrators") Check to see if the user executing the data service is a member of the Administrators group. Complex expressions Certain expression fields in Studio accept more complex expressions. These can span multiple lines and can contain multiple simpler expressions, each ending with a semicolon character (;).
The view model editor JavaScript references: • http://www.devguru.com/Technologies/ecmascript/quickref/javascript_intro.html • http://www.topxml.com/javascript Accessing columns from incoming result sets When you connect one or more other elements to an operator in Studio, you can access the values in the incoming result sets’ columns from expressions that you define in the operator.
Using expressions within Avaki Studio Working with variables Often you will need to create variables when constructing view models, particularly as the complexity of the model grows or as you use more advanced operators such as Iterator. Studio provides you with a JavaScript object named variables, which lets you store any variables you wish to use across multiple operators. Refer to any variables using the form variables..
The view model editor Allowed types for variables All values in the variables structure must be of one of the types listed here. Note that global parameters, while defined using SQL types, are accessed in your expressions using the corresponding Java types, according to JDBC conventions.
The expressions menu The expressions menu You don’t need to know any JavaScript to write simple expressions in Avaki Studio. In any field where you can enter an expression, you can use Studio’s expressions menu to choose the parameters, variables, logical operators, predefined functions and input column names with which you construct your expression. To display the menu, click in the expression field, then right-click. The submenus in the expressions menu are described below.
The view model editor Operators The Operators submenu lists JavaScript operators that you can use to modify your expression. If you have done any scripting or other programming, you will probably be familiar with many of these already. The most basic arithmetic operators are not included in the menu. They are addition (+), subtraction (-), multiplication (*), and division (/). To enter an operator into your expression, simply choose it from the submenu.
The expressions menu Menu Item Description Bitwise XOR (^) Produces a new value whose bits are set when only one (but not both) of the corresponding bits in the LHS and RHS is set. 0xf0a6 ^ 0xcd0f evaluates to 0x3da9, for example. Bitwise NOT (~) Produces a new value whose bits are inverted with respect to the RHS. Note that there is a “unary” operator—there is no LHS. ~0xcd0f evaluates to 0x32f0, for example.
The view model editor • column: the column whose data you want. You can specify the column either using a 1-based integer index or a string containing its name. Note The names of the result set variables are the incoming operator’s name with “RS” appended. For example, the result set object for an incoming operator named “Join1” would be named Join1RS.
Advanced topics Propagating name changes through the view model If an operator name or a parameter name changes, Avaki Studio propagates the change to all expressions that use the changed element. Note This propagation does not apply to the code inside Custom operators, nor does it apply to operator control variables. This issue will be addressed in an upcoming release. Advanced topics Using a .
The view model editor Performance of sort-based operators Several operators must sort their inputs. These include Order By, Join (only when using the Sort Merge algorithm), Group By, and Intersection, as well as any operator that uses the “Distinct” option to eliminate duplicate rows. You should be aware of two factors that can affect sort performance: sort chunk size and the location of temporary files for sorts. These are discussed below.
Chapter 5 Metadata modeling This chapter describes how to create metadata models, import them into Avaki Studio, and apply the models to Avaki objects.
Metadata modeling About metadata models In Avaki Studio, a metadata model expresses a schema. Metadata models define a set of tables in which each table contains a set of named columns and each column is associated with a data type. A table in a metadata model can be mapped (linked) to an Avaki object, such as a data service or a database operation, or to a table in a database.
Importing metadata models You can ensure that Avaki data services you create conform to a particular schema. Suppose you created a schema in a modeling tool, such as Sybase PowerDesigner or ERwin, and you want to create a data service that produces results matching your schema. Solution: Import the schema into Avaki Studio as a metadata model and derive a new view model from the metadata model.
Metadata modeling Follow these steps to import a metadata model into Avaki Studio: 80 Step 1 Select File > Import. The Select window appears. Step 2 Click Metadata as Avaki Virtual Schema Model and click Next. The first screen of the import wizard appears.
Importing metadata models Step 3 Click Browse to list the project folders into which you can import the model. Select a project folder from the list and click OK. Step 4 (Optional) Change the name of the Avaki metadata model (.amm file) in the File name field.
Metadata modeling Step 5 Click Next. The Import Type window appears. Step 6 Click the data model type to import and click Next. Depending on which import type you choose in Step 5, the dialogs display PDM, ERWIN, or DBconn if you chose JDBC. The example in this procedure uses PowerDesigner.
Importing metadata models Step 7 Click Browse to navigate to the location of your metadata model, select the file to import and click Next. The Catalog Chooser window appears. Step 8 Select the catalog to import from the Catalog Chooser and click Next. The Schema Chooser window appears. Note If your external schema contains no catalogs, you will see “No catalogs” in the Catalog Chooser window. Step 9 Select the schema to import from the list and click Next. The Table Chooser window appears.
Metadata modeling Step 10 Select any table or tables you want to import from the displayed list and click Finish. The editor pane displays the tables from the metadata model you imported. If the imported tables are sitting on top of one another, you can space them out evenly by right-clicking inside the editor pane and selecting Tidy Tables from the submenu. Alternatively, click the Tidy Tables icon on the menu bar 84 Data Integration with Sybase Avaki Studio .
Creating and editing metadata models Creating and editing metadata models It’s generally easier to import metadata models (as described in “Importing metadata models” on page 79) than to create them in Avaki Studio. If you don’t have access to a suitable modeling tool, though, follow the steps given here. Editing metadata models is similar to using the Avaki view model (AVM) editor. It is, however, much simpler because there is only one type of element in the model—a table.
Metadata modeling 86 Step 3 Click Browse to navigate to the container where you want your new model to reside, optionally rename the file, and click Finish. An editor pane displays beneath the name you assigned your new metadata model. Step 4 To open an existing metadata model for editing, click the Navigator tab in the left pane. Navigate to the folder where your model is stored and double-click the .amm file for the model. The model opens in the editor pane.
Creating and editing metadata models Step 7 To edit the table, double click it and the Schema Editor window appears. Step 8 Replace NewTable with a table name of your choosing by typing a name in the Name field. Step 9 (Optional) Click Edit to type a description for your table. Step 10 Click Add to add a new column to your table, and then position your cursor in the column fields to edit their names and values.
Metadata modeling Step 11 Continue to click Add and enter data until your table contains all the columns you need. To reposition a column, select its row and click Move Up or Move Down. Step 12 When you have finished adding and editing columns, click OK. Mapping metadata models to Avaki objects You can map (link) a table in a metadata model to an Avaki object, such as a data service or a database operation, or to a table in a database.
Mapping metadata models to Avaki objects Step 2 In the data catalog view, click GetEmpGivenName. Drag and drop it on the EMP table in the editor pane. The metadata model editor checks to ensure that the schema of the object being dropped matches that of the table. If so, the mapping is made and the mapped object appears in the editor pane.
Metadata modeling If the schemas do not match—for example, if you drop the GetEmpGivenName database operation onto the PFIZER_1M table, the mapping is invalid and Studio returns an error similar to the following: Step 3 To resolve schema errors, click OK, and you are left with an invalid mapped object displaying a red state. To correct the mapping: • Edit the target schema, update the Avaki object (for example, database operation or data service), and regenerate the schema.
Deploying metadata models Step 5 Point your application at either the database or Avaki; no further changes are required. Note Pointing the application at Avaki means you are connecting to Avaki via JDBC. See “Deploying metadata models,” below, for information on naming con- ventions for mapped tables.
Metadata modeling The metadata model is successfully deployed and added to the data catalog’s Metadata directory when you see the following message: Step 4 You can check your newly deployed object in the data catalog: If the deployment fails, the operation stops, newly provisioned objects are removed from the grid, and Avaki Studio displays an error. To undeploy a metadata model, see “Undeploying metadata models” on page 95.
Deriving metadata models Deriving metadata models Deriving a view model from a metadata model is a way to create a new data service with a designated output schema. When you perform this operation, Avaki Studio checks that the view model you built generates the output schema you specified. In other words, the results of a data service deployed from the view model will conform to the metadata model.
Metadata modeling Step 4 Create a data service where you connect input to output. Step 5 In the editor pane, click Connection, then click the Input Source table and then click the Result table. As you add other operators to the view model, Avaki Studio monitors the schema and alerts you if the view model’s schema diverges from that of the metadata model.
Undeploying metadata models Undeploying metadata models Undeploying a metadata model reverses the results of deploying it, which means that you can no longer access the tables in the model through JDBC using the specified names. To edit a deployed model, you must first undeploy it. Step 1 Right-click inside the editor pane and choose Undeploy Metadata Model from the submenu. Alternatively, click the Undeploy Metadata Model from the Avaki Server button on the toolbar, directly above the editor pane .
Metadata modeling 96 Data Integration with Sybase Avaki Studio
Chapter 6 Managing the data catalog This chapter describes tasks you can perform in Avaki Studio’s data catalog view; these include: • Modifying access control lists (ACLs)—page 98 • Creating and modifying attributes—page 101 • Creating categories and adding objects to them—page 104 Avaki Studio provides a limited set of tools for managing the data catalog.
Managing the data catalog Modifying ACLs This section explains how to display and modify access control lists through the data catalog view. You can set permissions, change ownership, add users or groups to an ACL, or remove users or groups. Step 1 To display the ACL for an item in the data catalog, right-click the item in the data catalog view and select Permissions from the context menu. The Edit Permissions dialog appears.
Modifying ACLs Step 4 To change the object’s owner, click the Change Owner... button. The User/Group Browser appears. Step 5 Use the Domain pull-down if you want to select a user or group from another Avaki domain. Click the Group button if you want to select a group. Choose a user or a group from the list and click OK to dismiss the browser. Studio updates the Edit Permissions dialog to show the object’s new owner. Step 6 To add a user or group to the ACL, click the Add button.
Managing the data catalog missions dialog to show the new line in the ACL. In this example, we’ve added a user called Fred. Notice that Fred’s permissions are all Unset. If you leave them in that state, Studio will drop Fred from the ACL. You can use the Read, Write, Execute, and Delete pull-down menus to set permissions. Step 8 To remove a user or group from the ACL, select it and click the Delete button. Studio removes the selected user or group from the ACL.
Managing attributes Managing attributes Read this section for instructions on displaying, creating, modifying, and deleting the attributes associated with objects in the data catalog. Step 1 To display the attributes for an item in the data catalog view, right-click the item and select Attributes from the context menu. The Edit Attributes dialog appears. Notice that the Attribute Name and Type fields and many of the Value fields are grayed out and uneditable (above).
Managing the data catalog 102 Step 3 To add a new attribute to the object, click the Add button. Studio adds a row to the table. Step 4 Enter a name for your attribute in the Attribute Name field. In the Type field, select a data type from the pull-down menu. Enter a value in the Value field. In this example, we add an attributed called searchTerms whose type is string. Other users will be able to find this object by searching on any of the words in the value.
Managing attributes Step 5 To remove an attribute, click its pencil icon to select it and click the Delete button. Studio removes the attributed from the table and redisplays the dialog. Step 6 Click OK to save your changes and dismiss the Edit Attributes dialog.
Managing the data catalog Managing categories This section provides instructions on displaying, creating, and deleting categories in the data catalog view, and on adding data catalog objects to and removing them from categories. Creating and displaying categories 104 Step 1 To display categories in the data catalog view, expand the Categories folder.
Managing categories Step 3 Right-click on the parent category and select Add Category from the menu. The Add Category dialog appears. Step 4 In the Name field, enter a name for the new category. Enter a description of the category in the Description field (optional). Studio will display the description as a tool tip whenever a user mouses over your category’s name in the data catalog view. Step 5 Click OK to create the category.
Managing the data catalog Step 3 Select one or more categories. Step 4 Click OK to add the object. Studio reports the success or failure of the category creation; click OK again to dismiss the notification. If any of the containing categories are open, the object appears in its new categories. Removing objects from categories Step 1 In the data catalog view, right-click the object to be removed and select Remove from Categories from the context menu. The Remove From Categories dialog appears.
Chapter 7 Operator reference Consult this chapter for detailed information on the workings of the elements that make up a view model: operators, Input Source elements and Result elements. You should already be familiar with the material in Chapter 4, ”The view model editor.” Each element is covered in its own section, which includes a description of the element, information about how it can be connected, details on configuring it, and in some cases, performance notes and usage examples.
Operator reference • “Select” on page 165 • “Splitter” on page 166 • “Union” on page 168 • “Update” on page 169 Aggregate The Aggregate operator condenses a multi-row result set into one with a single row by applying any of a number of functions to the data. These functions perform calculations such as totalling or counting the values for each row. The output row has one column containing the result of each function defined.
Aggregate Aggregate properties Double-click an Aggregate operator to display the Aggregate Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58. Defining aggregate columns Do the following to edit the column definitions of your aggregation. • Click the Add button to add a column definition to your aggregation. • To delete one or more columns, select them and click Delete.
Operator reference Function: Click the Function field and use the pull down list to choose the function you want to use for this column. The value of the Expression field will be passed to this function for each row in the incoming result set. The functions are described under “Aggregate functions” below. Type: Specify the type of the column. Be sure to specify a numeric type (INTEGER, for example) for aggregate columns that use the Count function.
Custom Function Description Population standard deviation Returns the population standard deviation for the values of expression in the input result set. Sample standard deviation sion in the input result set. Returns the sample standard deviation for the values of expres- Custom A Custom operator can perform any operation that you define, using arbitrary JavaScript code that you supply. To implement a Custom operator, you first define the output schema you will generate.
Operator reference Custom properties Double-click a Custom operator to display the Custom Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58. Specifying the output schema When you define a Custom operator, you need to specify the schema that the output result set will have. You do this using the Schema Editor dialog, which is accessed by clicking the Edit… button near the bottom of the Custom Properties dialog.
Custom • To delete one or more columns, select them and click Delete. • To reorder the columns, select one or more of them and click the Move Up or Move Down buttons. (If you want to move multiple columns, the selection must be contiguous.) • You can edit the properties of each column. (See “Working with schemas” on page 60 for information about the setting the name, type, precision, and scale of columns.) Name: Click in the a column’s name field to rename it. Type: Specify the type of the column.
Operator reference Note The Custom operator is an exception to the guidelines regarding Java- Script expressions in that you must always access the columns of both incoming and output result sets using either the accessor methods on the ResultSet object itself or the Avaki utility functions (as listed under “Avaki Functions” on page 73). Example: Making a lookup table using a Custom operator and a .
Custom algorithm with the second input result set as the inner table.
Operator reference lookupTable.initialized = true; // So we don't try and do this again } This code reads the “currency to exchange rate” result set into a hash table. The Custom operator has two inputs—one is called “LookupTableSource,” and the other is called “DataInputSource.
Generator Generator A Generator operator produces a result set without input. Like an Iterator, a Generator lets you specify JavaScript expressions for initializing variables, updating variables, and testing for termination. Unlike an Iterator, a Generator does not accept inputs. Like a Projection operator, a Generator allows you to specify the names and types of the output columns, as well as JavaScript expressions for computing the values in each row.
Operator reference Generator properties Double-click a Generator operator to display the Generator Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58. Your code has access to the variables structure, including an object called variables., into which you can insert state variables, using expressions such as: variables.myOperator.
Generator that would be valid inside a function body. See “Using expressions within Avaki Studio” on page 66 for details on using JavaScript code within Studio. Increment: This field contains expressions which increment the variables you initialized in the previous field. In our example, we would simply increment our counter variable. Here, too, you can enter any JavaScript code here that would be valid inside a function body.
Operator reference • To reorder the columns, select one or more of them and click the Move Up or Move Down buttons. (If you want to move multiple columns, the selection must be contiguous.) • You can edit the properties of each column. (See “Working with schemas” on page 60 for information about the setting the name, type, precision, and scale of columns.) Name: Click in the a column’s name field to rename it.
Group By Group By The Group By operator is very similar to the Aggregate operator. Its output includes columns generated with the same aggregation functions. The difference is that whereas the Aggregate operator applies these functions to the entire set of input rows, the Group By divides the input rows up into groups based on criteria you specify and then applies the aggregation functions to the subset of rows in each group.
Operator reference Performance notes Because Studio needs to sort the result set in order to perform a grouping, the same performance issues described for the Order By operator apply to the Group By operator. See “Performance notes” on page 159 for details. Group By properties Double-click a Group By operator to display the Group By Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58.
Group By • You can edit the properties of each column: Name: Click in the Name field and choose a column name from the pull down list to change it. (When you add a new column, Studio chooses the next available column from the input, which may not necessarily be the column you want to group by). Keep in Schema: This determines whether the column in question will appear in the output schema of the Group By operator. To change its value, click in the field and choose either “Yes” or “No” from the pull down.
Operator reference • You can edit the properties of each column. (See “Working with schemas” on page 60 for information about setting the name, type, precision, and scale of columns.) Name: Click in the a column’s name field to rename it. Expression: Click in the column’s Expression field to edit it. This may be any JavaScript expression that you want to pass to the aggregate function, including simple column names from the incoming result set.
Input Source Input Source An Input Source element represents input from a source external to your model. While some input sources take their input from nonrelational data, all of them have a single output in which their data is formatted as a result set, as if it had come from a relational database query.
Operator reference Input Source Properties Double-click an Input Source element to display the Input Source Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58.
Input Source You specify the source for your Input Source element using the Input Source tab. The tab provides a summary of the current settings. To change the values, click the Choose… button to launch the Input Source Chooser wizard. Choose the type of input you want to use and click Next. Depending on the type you choose, you will see a different series of pages in the wizard.
Operator reference Configuring database operation input sources. On the next page (“Database Operation Input Source”), you choose a database operation (or virtual database operation) from the browser. Browse to select the operation you want and click the Finish button to close the wizard.
Input Source Configuring data service input sources. On the next page (“Data Service Input Source”), you choose a data service from the browser. Browse to select the service you want and click the Finish button to close the wizard.
Operator reference Configuring file input sources. On the next page (“File Input Source”), you choose a grid file from the browser. Browse to select the file you want and click the Finish button to close the wizard.
Input Source Configuring HTTP input sources. On the next page (“HTTP Operation Input Source”), you specify information about the HTTP server you wish to contact. Fill in the fields as follows: • URL: Enter the URL for to the HTTP source. • HTTP Method: The method determines how parameters to the HTTP request get sent. Choose GET to encode the parameters as part of the URL or choose POST to include the parameters in the HTTP headers. For most HTTP requests, you will want to choose the default GET method.
Operator reference When you are done with this page, click Next to proceed to the “HTTP Operation Parameters” page. (If your HTTP operation doesn’t require any parameters, you can click Finish now to close the wizard.) • Click the Add button to add a parameter. • To delete one or more parameters, select them and click Delete. • To rearrange the parameters, select one or more of them and click the Move Up or Move Down buttons.
Input Source Configuring web service input sources. On the next page (“Web Service Input Source”), you specify information about the web service you want to call. Fill in the fields as follows: • WSDL Location: This is the URL to the WSDL (Web Service Description Language) file for the web service you want to call.
Operator reference Click the Next button to continue to the “Web Service Operation” page where you will choose the operation you want.
Input Source Click Next to continue to the “Web Service Response” page, where the wizard asks you to indicate which part of the SOAP (Simple Object Access Protocol) response you want this input source to return. Select one: • The entire SOAP response Return the SOAP message and any attachments. • Only the SOAP part of the response Return the SOAP message with no attachments. • The nth attachment (0-based index) Return the specified attachment but not the SOAP message.
Operator reference Configuring the transform If the source you configured on the Input Source tab doesn’t already contain data in the relational database result set format, you will need to configure Studio to transform the data. Studio is able to convert data from CSV (Comma-Separated Values) format (actually, comma-, pipe- (‘|’), or tab-separated files) and XML (Extensible Markup Language) into result set format.
Input Source • CSV to Result Set When your data is in CSV or a similar format. • XML to Result Set If your data is in XML format. If you chose “No transform,” click Finish to close the wizard. Otherwise, click Next to continue. You will see the “Parameter Values” page. If your input source takes parameters, you need to enter values for them here. These are only used in the course of defining the transformation, in order to get sample data from your input source to use in the remainder of the wizard.
Operator reference Configuring CSV transforms. If you choose to define a CSV transform, the next page will be the “CSV to Result Set Transform” page. Fill in the fields as follows: Field Delimiter: Choose the delimiter that separates fields in the file. Studio can process files separated not only by commas (‘,’), but also by “pipes” (‘|’) and tabs. Use first row of data as column names: Check this box to treat the first row of data in the file as the names of the columns.
Input Source Click Next to display the “Column Definitions” page. If you selected “Use first row of data as column names” on the previous page, the names of the columns will already be filled in for you. You can edit the properties of each column. (See “Working with schemas” on page 60 for information about the setting the name, type, precision, and scale of columns.) Name: Click in the Name field to edit the column’s name.
Operator reference Scale: Specify the scale for the column, if applicable for the column’s type. First Row Value: This column is not editable. Studio uses it to show you the values in the first row of your file, to help you decide when naming the columns or specifying their types. When you’re done, click Finish to close the wizard. Configuring XML transforms. If you choose to define an XML transform, the “XML to Result Set Transform” page appears.
Input Source When you’re done, click Next to continue to the “Column Definitions” page. • Click the Add button to add a column. • To delete one or more columns, select them and click Delete. • To reorder the columns, select one or more of them and click the Move Up or Move Down buttons. (If you want to move multiple columns, the selection must be contiguous.) • You can edit the properties of each column: Name: Click in the Name field and edit the column’s name.
Operator reference you choose (for example, if the document has the value “foo” and you choose INTEGER for the type, you will get an error when you execute your data service). Precision: Specify the precision for the column, if applicable for the column’s type. Scale: Specify the scale for the column, if applicable for the column’s type. XPath: Specify an XPath expression that defines the node of the XML document whose value you want to use for this column.
Input Source Configuring error handling You can choose how data services deployed from this view model will behave if this input source is unavailable or unresponsive. By default, a data source fails and returns an error if any input source fails to respond. If you want data services deployed from this view model to run even when this input source is unavailable, or to return an error upon receiving an empty result set, follow these steps.
Operator reference Mapping input parameters If the input source has parameters, you must map them to global view model parameters. Follow these steps to map parameters. 144 Step 1 Click the Parameters tab to show information about the parameters the Input Source requires, if any. The Parameters tab shows you a summary, including a warning if any parameters haven’t yet been mapped.
Input Source To edit the expressions, click in the Value column to make it editable. Type your mapping expression directly in the table cell, or click the “…” button to open the Edit Expression dialog if you need more room than the table cell provides. Right click (either in the table cell directly, or in the Edit Expression dialog) to show a context-sensitive menu of column names, variables, and functions that you can paste into the Expression field.
Operator reference Web service parameters. Parameters defined by web services are arbitrarily complex structures. When you click in the Value column for a parameter of this type (the type appears as “AROM Value”), the Web Service Parameter Values dialog appears. For many of these parameters, you simply enter expressions in the individual fields. Some more complicated structures have additional controls: • Click the Add button to add a new element to an array within the complex parameter.
Input Source The Map Unmapped shortcut. Studio provides a shortcut for mapping parameters to the global parameters of your model. To access it, click the Map Unmapped… button in the Parameter Properties dialog. Studio displays the Map Unmapped Parameters dialog. This dialog walks you through the parameters in your Input Source that haven’t yet been mapped.
Operator reference Intersection The Intersection operation generates a result set consisting of only those rows that are common to both of its inputs. It compares all columns in each result set in computing the intersection and requires that the two input result sets have identical schemas. Connections The Intersection operator takes exactly two input result sets, which can be the output of Input Source elements or of any other operators. The schema of the two input result sets must be the same.
Iterator Iterator The Iterator operator provides a looping construct for view models. Based on criteria you specify, an Iterator repeatedly executes the portion of the flow upstream from its position and accumulates the results. You might use an Iterator if, for example, you need to execute a parameterized input source once for each of a series of dates, sales regions, or customer IDs. You can use the Iterator operator in two ways: Like a for loop.
Operator reference Connections The Iterator operator takes either one or two input result sets. If there is a second input, it is designated the range input and its rows are used to perform the iteration. Iterator produces exactly one output result set and its schema is the same as that of the primary input. Required Connection Optional Connection Iterator properties Double-click an Iterator operator to display the Iterator Properties dialog.
Iterator tain your own iteration control variables (such as a counter that you increment). When you configure a range input, Studio automatically checks for the end of the result set and terminates the loop under that condition. You can add an expression in the Condition field (see below) to cause the looping to terminate while there are still rows left in the range input, but you cannot cause the iteration to continue after all rows in the range result set have been used.
Operator reference Example: Iterating over the elements of an array parameter The problem Suppose you want to create a data service that summarizes account information for a list of customers.
Iterator • Condition: Enter the following code: // Check to see if we’re at the end of the array variables.AccountIterator.x < variables.global.Accounts.length Configure the Projection operator next (see “Projection” on page 161 for details). Use the Project All button to pass the results of the input source straight through. Then add a new column, named ACCOUNT_NUMBER that references the current variable in the Iterator (you can use the expressions menu to enter it if you like).
Operator reference Join The Join operator performs a relational join operation on its two input result sets, matching up corresponding rows from the inputs. It does this matching by checking for equality of one or more pairs of columns (where column “A” of the first result set matches column “B” of the second, for example). In addition to specifying the columns to match, you specify the type of join (inner, outer left, outer right, or outer full) you want Studio to perform.
Join Inner and outer tables The algorithm and join type choices refer to inner and outer tables. Studio doesn’t require you to specify which is which when you connect your inputs to the Join operator. Instead, you can choose which of the two connected inputs will be the inner table by using the Inner Table popup. Note The terms “inner table,” “inner result set,” and “inner input” are used interchangeably in the discussion of join operations.
Operator reference Join types Avaki Studio supports inner, outer-left, outer-right, and outer-full join types. These join types work in the same way as their SQL counterparts. They’re summarized here: Join Type Description Inner Inner joins find the intersection between the two result sets. If no matches appear in the outer input for a given row in the inner input, no row is output.
Multiplexer Outer Column: Click in field and use the pull-down list to choose the corresponding column from the outer table. Multiplexer Given up to five input result sets and a conditional expression for each, the Multiplexer operator generates a result set that concatenates all the inputs whose conditional expressions evaluate to true. You can use Multiplexer to select one or more inputs from among several choices.
Operator reference Multiplexer properties Double-click a Multiplexer operator to display the Multiplexer Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58. There will be one Expression field for each of the inputs you have connected to the Multiplexer operator, each labeled with the name of the corresponding input.
Order By Order By The Order By operator sorts its input based on the criteria you specify. Order By does not affect the result set’s schema or the number of rows it contains. Connections The Order By operator takes exactly one input result set, which can be the output of an Input Source or of any other operator. It produces exactly one output result set whose schema is the same as the input.
Operator reference Order By properties Double-click an Order By operator to display the Order By Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58. Specifying the sort criteria In the Order By Properties dialog, you list the columns from the input that the operator will use to sort the incoming rows.
Projection Projection The Projection operator lets you modify a schema. You can pass certain columns through, unaltered, you can remove columns completely, and you can create new columns using arbitrary JavaScript expressions. By default, Projection produces one row of output for every row of input. However, you have the option of omitting duplicate rows from the output result set.
Operator reference Projection properties Double-click a Projection operator to display the Projection Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58. Defining projection columns You can do the following to edit the column definitions of your projection. • Click the Project All button to add column definitions for all of the columns in the input result set.
Projection Expression: Click in the column’s Expression field to edit it. This can be any JavaScript expression, including simple column names from the incoming result set. Click the “…” button to open the Edit Expression dialog if you need more room than the table cell provides. You can also right click (either in the table cell directly, or in the Edit Expression dialog) to show a context-sensitive menu of column names, variables, and functions that you can paste into the Expression field.
Operator reference Result A view model’s Result element is created automatically when you create the view model. Because every view model has one and only one result, Result elements cannot be deleted or created separately from the view model itself. A Result element takes its schema from the element connected to it. The schema of the Result element is also the schema of the model as a whole, and therefore, of any data services deployed from the model.
Select Select Use a Select operator to filter rows from an input result set. You provide a Boolean expression that is tested for each row. If the expression evaluates to true for a given row, the row is passed to the output. Otherwise it is thrown away. Select does not change the schema of its input result set. Connections The Select operator takes exactly one input result set, which can be the output of an Input Source or of any other operator.
Operator reference ANNUAL_SALARY column in the input result set) is $100,000 or less, you could use the expression below: ANNUAL_SALARY <= 100000 Splitter Given one input result set, the Splitter operator produces one or more identical output result sets. Use Splitter if you need to operate on the same data in multiple execution paths within your view model. You can configure the Splitter to cache the data. If you enable caching, the operator caches its input the first time you call it.
Splitter Splitter properties Double-click a Splitter operator to display the Splitter Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58. Caching result sets If you want your Splitter operator to cache its result set, check the Enable caching of intermediate result sets checkbox. If you check this, you can configure the other fields in the dialog.
Operator reference defines a variable that’s mapped to a parameter in an Input Source element upstream of the Splitter, make sure that it’s selected here, to ensure the validity of the cached data. The list on the left contains the downstream variables that don’t affect the caching; the list on the right contains those that do. To manipulate the lists: • To move one or more selected variables to the right-hand list, click Add. • To move all of the variables to the right-hand list, click Add All.
Update Union properties Double-click a Union operator to display the Union Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58. Removing duplicates Select the Generate only distinct (non-duplicate) rows checkbox to eliminate from the output result set any rows whose data duplicates that of a row already in the output.
Operator reference • The data types of the result set columns (by ordinal position) and the parameters of the database operation (by ordinal position) must match. • The database operation must be defined with the “Supports batch operations” option enabled. In batch mode, the output of the Update operator can be either the input result set (passed through with no changes) or, like in mapped parameter mode, a single-row result set consisting of the UPDATE_COUNT column.
Update Update properties Double-click an Update operator to display the Update Properties dialog. You can edit the name and description as described in “Properties dialogs” on page 58.
Operator reference Choosing a database operation The Update operator executes a database operation defined in your Avaki domain. Use the Browse… button to choose the database operation you want to execute. The operation you choose must have been defined with the “Modifies Database” option set to “Yes” in order for it to work in an Update operator. (If you used Studio to create the database operation, the option is a checkbox labelled “Operation modifies the database”.
Update To bring up the Parameter Properties dialog, click the Edit Values… button. To map a parameter, click in the Value column to make it editable. Type your mapping expression directly in the table cell. You can also click the “…” button to open the Edit Expression dialog if you need more room than the table cell provides.
Operator reference 174 Data Integration with Sybase Avaki Studio
Glossary Terms printed in italics are defined in the glossary. access control list (ACL) A list, for a given file, directory, or other Avaki object, of permissions—read, write, execute, delete, and owner—that control which users and groups can view, modify, invoke, and remove the object, and edit the object’s ACL. ACL See access control list. ad-hoc query A mechanism that lets you directly query a database in SQL. The query must run through an existing Avaki database connector.
Glossary Avaki directory Avaki software creates a single, unified namespace that is accessible (subject to Avaki access control lists) to all users in the Avaki domain. The namespace, called the data catalog, is arranged as a hierarchy of Avaki directories (folders). The catalog directory structure is stored by the domain’s grid servers and its GDC, while the physical files remain in their original locations in your local file systems.
Avaki Studio A graphical, metadata-based data integration tool that lets you • Build data flows by dragging and dropping input sources, operators, and output targets. You can deploy your data flows as Avaki data services. • Import or create metadata models and apply them to Avaki objects or use them to build new data services.
Glossary CIFS share A directory or file that has been exported (shared) from the Avaki data catalog. A CIFS share can be mapped into a Windows file system like a network drive. When you browse the Windows file system, CIFS shares look like—and can be accessed like—other files and directories. CIFS shares are created through a data grid access server. Contrast with Avaki share.
data service An operation that transforms data obtained from sources in the data catalog.
Glossary DGAS See data grid access server. distributed transaction A set of related operations (typically SQL operations such as SELECT, INSERT, UPDATE, DELETE, and CALL) that • involve one or more databases, and • might lead to unwanted results (such as leaving participating databases in an inconsistent state or producing inconsistent reads) if some of the operations complete and others do not, and therefore • must all be executed at once, as a single transaction.
failover The transition of control from a failing or unreachable primary grid domain controller to a secondary grid domain controller. federated data access A scheme that allows independently controlled elements to be shared into a single namespace. Files, user accounts, and other objects maintain their separate identities and remain under the control of their owners, but—subject to access controls—the objects can be accessed, managed, and viewed as if they were part of a single system.
Glossary grid server An Avaki server that maintains a portion of the Avaki domain’s namespace, runs Avaki services such as shares, execution services, caches, and searches, and allows you to run Avaki’s web UI and execute Avaki commands. group See Avaki group. hard link Provides an alternate name for an item in the data catalog. Changes to the object’s other names have no effect on the hard link: you can move or change a file’s original name and the hard link will still know where to find the file.
metadata model A construct in Avaki Studio that expresses a schema by defining a set of tables. A table in a metadata model can be mapped (linked) to an Avaki object such as a data service or a database operation, or to a table in a relational database. The mapping lets you address each mapped object by the name of the corresponding table in the metadata model. You can also derive a view model schema from a metadata model.
Glossary queries See ad-hoc query. query engine An Avaki service that executes SQL queries against the SQL views (tables) that make up the Avaki virtual database. A query engine analyzes queries, pushes as much of the work as possible down to the underlying relational database (if there is one), and performs the remaining operations (such as joins across tables from different databases) itself. There is a query engine on each grid server.
share server An Avaki server whose only task is to manage Avaki shares—local directories that are exported (shared) into the data catalog. (Grid servers can also manage shares.) shared directory See Avaki share. soft link A pointer to a particular location (name) in the Avaki data catalog. If the object at that location is moved, deleted, or renamed, the soft link leads nowhere. Soft links can be created only in the CLI. Contrast with hard link.
Glossary virtual database The set of all SQL views in an Avaki domain, including those provisioned from external databases and those generated from data services and database operations. You can execute SQL queries on the SQL views in the virtual database as if they were tables in a single database. virtual database operation A database operation whose source database is the Avaki virtual database itself.
Master Index In electronic copies of this book, the index links to other books in the documentation set work only as long as the PDF files are stored in the same directory. Key AD: Administration Guide API: API Guide C: Command Reference O: Overture P: Provisioning & Advanced Data Integration Guide S: Data Integration with Avaki Studio Symbols * asterisks in command syntax AD:xvi, C:xv, P:xi - hyphens in command syntax AD:xvi, C:xvi, P:xii + plus signs in command syntax AD:xvi, C:xv, P:xi .
AD: Administration Guide API: API Guide C: Command Reference ad-hoc queries (continued) code samples API:74 defined AD:349, API:83, C:307, O:61, P:289, S:175 enabling C:66 enabling on a database connector P:4 executing C:63 on virtual database executing C:282 parameter types, specifying C:283 parameter types, specifying C:65 using JDBC driver to run API:69, API:74 AdHocDBOPExecutionParams complex type API:13 administrative user accounts, setting up AD:44 Administrators group O:43 about AD:45 permissions
P: Provisioning & Advanced Data Integration Guide authentication services (continued) NIS adding schedule exclusions for refreshing C:180 deleting authentication services C:181 deleting import schedules C:181 displaying info about C:183 enabling users C:250 importing groups from AD:165, C:182 importing users from AD:164, C:182 integrating into the grid AD:162, C:184 listing import schedules C:184 scheduling user imports C:177 updating C:185 refreshing imported accounts AD:185 specifying for JDBC connections
AD: Administration Guide API: API Guide C: Command Reference avaki dgas --show-admission-policies C:114 avaki dgas --show-admission-policy-domain C:114 avaki dgas --sync-cache C:115 avaki dgas --unset-admission-policy-domain C:116 avaki dgas --unset-property C:117 Avaki directories, See directories, Avaki avaki directory --add-schedule C:117 avaki directory --cache C:122 avaki directory --delete-schedule C:122 avaki directory --do-not-cache C:126 avaki directory --list-schedules C:126 avaki domain --crea
P: Provisioning & Advanced Data Integration Guide avaki security --default-group C:218 avaki security --default-uid C:219 avaki security --default-user C:220 avaki security --gid C:221 avaki security --info C:222 avaki security --uid C:222 avaki server --dgas --connect C:223 avaki server --dgas --destroy C:224 avaki server --dgas --stop C:225 avaki server --grid --connect C:225 avaki server --grid --destroy C:226 avaki server --grid --stop C:227 avaki server --proxy C:228 avaki server --share --connect C:22
AD: Administration Guide API: API Guide C: Command Reference avaki upgrade C:249 avaki upgrade --info C:250 avaki user C:250 avaki user --create C:251 avaki user --db-mapping --add C:252 avaki user --db-mapping --delete C:253 avaki user --db-mapping --list C:255 avaki user --delete C:257 avaki user --info C:258 avaki user --list-group C:258 avaki view --add-schedule C:259 avaki view --create --database C:263 avaki view --create --data-service C:266 avaki view --create --file C:267 avaki view --delete C:2
P: Provisioning & Advanced Data Integration Guide caches (continued) bad port, properties for AD:141 configuring associated server or user C:33 configuring threads for AD:131 data service plug-in, properties for AD:137 deleting schedules for data services C:54 deleting schedules for database operations C:78 deleting schedules for directories C:122 deleting schedules for files C:135 DGAS clearing user credentials AD:117 clearing user credentials from C:95 configuring block size for reads AD:81 configuring fr
AD: Administration Guide API: API Guide C: Command Reference change time file attribute C:290 characters in column aliases in database operations S:42 in command syntax AD:xv, C:xv in cron schedules C:298 in domain names, restrictions on AD:41 in JavaScript identifiers S:42 in metadata model names, restrictions on S:91 in names of Avaki objects, restrictions on AD:207 wildcards in searches AD:235 CHARSET JDBC property for ASE and IQ AD:7 chmod command C:41 chmod SOAP operation API:19 chown command C:42 c
P: Provisioning & Advanced Data Integration Guide com.avaki.scheduleExclusionCacheSize system property AD:145 com.avaki.shareIOProtocolSoTimeout system property AD:134 com.avaki.shareReadBufferSize system property AD:138 com.avaki.shareReadbufPoolSize system property AD:138 com.avaki.shareServerCircularLinkChecking system property AD:138 com.avaki.shareServerThreadPoolSize system property AD:138 com.avaki.vaultStateCacheSize system property AD:137 com.avaki.
AD: Administration Guide API: API Guide C: Command Reference data catalog SOAP operations (continued) removeAttribute API:31 rm API:31 search API:32 setAttribute API:32 tester API:33 whoami API:33 data catalog view S:18 data expiration intervals P:108, S:51 data grid access servers associating with cache services P:113 disabling auto-restart C:8 disassociating from cache services P:114 enabling auto-restart C:5 registering C:5 starting C:5, C:6 stopping C:7, C:8 unregistering C:8 See also DGAS data grids
P: Provisioning & Advanced Data Integration Guide data services (continued) input streams, configuring P:87 invalidating all in cache C:28 invalidating one in cache C:27 invalidating results in cache C:29 listing P:93 listing caching schedules for C:58 listing in cache P:163 location in categories S:18 marking for scheduled caching P:152 modifying C:58 modifying permissions AD:239 modifying settings P:94 names in data catalog O:24 nesting operations S:149 output streams, configuring P:86 provisioning web se
AD: Administration Guide API: API Guide C: Command Reference database operation SOAP operations API:40 database operations about O:7, O:22, P:1 access permissions P:22 adding schedule exclusions C:76 allowing groups to create P:16 allowing users to create P:15 caching of results API:62, O:57 permissions O:50 calling with JDBC API:73 calling with ODBC, JDBC, or SOAP P:38 configuring advanced settings P:247 configuring batch mode settings P:250 configuring caching P:108 configuring permissions C:59, C:62 c
P: Provisioning & Advanced Data Integration Guide dataservice --info command C:57 dataservice --list-schedules command C:58 dataservice --update command C:58 DataServiceExecutionParams complex type API:16 DB2, versions and JDBC drivers for use with Avaki AD:6 dbconn --allow-dbop-creation command C:59 dbconn --delete command C:61 dbconn --disallow-dbop-creation command C:62 dbconn --execute command C:63 dbconn --info command C:64 dbconn --jdbc command C:66 dbconn --provision-tables command C:71 dbconn --show
AD: Administration Guide API: API Guide C: Command Reference DGAS (continued) restarting AD:84 saving a copy of the cache C:109 saving copies of cache AD:120 server logs AD:317 setting a cache service AD:90 setting location of state database AD:74 setting properties AD:82, C:113 setting up NFS clients AD:91 starting AD:73, C:104 stopping C:225 syncing cache AD:121 time required to upgrade AD:341 uncoupling associated cache C:34 unsetting properties C:117 viewing and resetting cache statistics AD:123 warm
P: Provisioning & Advanced Data Integration Guide distributed transactions about O:25, P:78 API for executing P:188 configuring database connectors for P:7, S:36 defined AD:353, API:87, C:311, O:65, P:293, S:180 requirements for P:79 setting up P:80 supported DBMSes P:79 two-phase commit protocol P:79 DNS aliases for GDC machines AD:10 DNS name, setting for a server AD:32 document/literal web services API:3, API:5 documentation Avaki, list of AD:xii, API:vi, C:xii, O:vi, P:viii, S:viii for Eclipse Workbench
AD: Administration Guide API: API Guide C: Command Reference F failover defined AD:354, API:88, C:312, O:66, P:294, S:180 managing AD:112 setting up a secondary GDC AD:43 fake_metadata JDBC connection property for ASE API:70 FAKE_METADATA JDBC property for ASE AD:7 federated data access AD:354, API:88, O:66, P:294, S:181 fetch size, See JDBC fetch size file --add-schedule command C:130 file --cache-on-demand command C:134 file --delete-schedule command C:135 file --do-not-cache command C:136 file --list-
P: Provisioning & Advanced Data Integration Guide functions in expressions S:73 used with Aggregate operator S:110 G garbage collection for views C:273 GDCs, See grid domain controllers generated views about O:25, P:217, P:240 defined AD:354, API:88, C:312, O:66, P:294, S:181 running P:240 scheduling updates P:231 transactional consistency of P:217 GeneratedViews directory O:33 generating schemas S:19 Generator operator S:117 getAttributes SOAP operation API:23 getCatalogs method API:75 getCatalogTerm meth
AD: Administration Guide API: API Guide C: Command Reference groups (continued) defined S:176 deleting AD:198, C:143 deleting users from C:144 displaying information about AD:195, C:145 enabling interconnection access AD:304 everyone group O:44 imported groups O:43 from LDAP AD:159 from NIS AD:165 refreshing AD:195 in Avaki, defined AD:350, API:84, C:308, O:62, P:290 listing C:144 listing users in C:147 making account changes take effect immediately for DGAS access AD:117 MessagingUsers O:44 modifying AD
P: Provisioning & Advanced Data Integration Guide isList element P:266 Iterator operator S:149 example S:152 J JAR files for Avaki JDBC driver API:66 configuring path for second JAR on one grid server P:247 for data service plug-ins P:180 for jConnect API:67 jarurl element P:267 Java data service plug-in code samples P:190 sample web services client API:9 writing data service plug-ins in P:183 Java transformers error logging P:246 implementing P:243 installing P:245 referring to other documents P:245 using
AD: Administration Guide API: API Guide C: Command Reference ldap --delete command C:153 ldap --delete-schedule command C:154 ldap --import command C:155 ldap --info command C:157 ldap --integrate command C:157 ldap --list-schedules command C:158 ldap --searchbase command C:160 ldap --update command C:160 links command for creating C:161 uses of in data catalog O:36 See also hard links, soft links Linux requirements AD:3 listDBConns SOAP operation API:59 listDBOps SOAP operation API:59 listDBOpsByDBConn
P: Provisioning & Advanced Data Integration Guide monitor --add command C:167 monitor --clear command C:168 monitor --create command C:170 monitor --delete command C:171 monitor --list command C:172 monitor --result command C:172 monitor services monitor --start command C:173 monitor --stop command C:174 monitoring about AD:99 adding tests C:167 configuring AD:101 creating monitor services C:170 deleting monitor services AD:106, C:171 deleting tests AD:105 disabling and enabling tests AD:104 listing active
AD: Administration Guide API: API Guide C: Command Reference operators (continued) logical, in expressions S:72 moving S:56 Multiplexer S:157 names of S:58 Order By S:159 performance considerations S:5 Projection S:161 properties dialogs S:58 Result S:164 Select S:165 selecting S:56 sort-based, performance of S:76 Splitter S:166 Union S:168 Update S:169 with red borders S:60 Oracle 10g configuring XA driver for P:7, S:36 versions and JDBC drivers for use with Avaki AD:6 Order By operator S:159 performanc
P: Provisioning & Advanced Data Integration Guide privacy and HTTPS API:8 Projection operator S:161 in tutorial S:46 projects creating S:13 defined S:12 properties cache sizes for data service plug-ins AD:137 DGAS configuring AD:82 controlling cache size AD:124 displaying AD:124, C:103 displaying descriptions C:104 listing C:103 properties file C:293 setting C:113 unsetting C:117 for cache services AD:135 for encryption of grid objects AD:139 for HTTP and HTTPS ports AD:140 for HTTP keepalives on proxy serv
AD: Administration Guide API: API Guide C: Command Reference refresh schedules for Avaki shares AD:266, C:231 advanced AD:272 calendared AD:271 exclusions for AD:274 listing C:239 one-time AD:269 periodic AD:270 removing AD:278, C:236 for data services P:152 advanced P:157 calendared P:155 one-time P:155 periodic P:157 for database operations P:139 advanced P:144 calendared P:142 one-time P:142 periodic P:144 for files or directories P:120 advanced P:127 calendared P:125 one-time P:125 periodic P:127 for
P: Provisioning & Advanced Data Integration Guide scheduleexclusion --list command C:209 schedules adding for data services C:48, P:152 adding for database operations C:73, P:139 adding for directories C:117 adding for files C:130 adding for LDAP user importation C:149 adding for NIS user importation C:177 adding for views C:259 adding for virtual database operations P:139 creating cron specifications C:297 creating custom exclusions C:198 creating daily exclusions C:199 creating monthly exclusions C:201 cr
AD: Administration Guide API: API Guide C: Command Reference server --dgas --destroy command C:224 server --dgas --stop command C:225 server --grid --connect command C:225 server --grid --destroy command C:226 server --grid --stop command C:227 server logs configuring AD:317 viewing AD:107 server --proxy command C:228 server --share --connect command C:228 server --share --disconnect command C:229 server --share --stop command C:230 servers, backing up databases for C:23 servers, Avaki defined AD:350, AP
P: Provisioning & Advanced Data Integration Guide SOAP complex types (continued) DataCatalogEntry API:15 DataCatalogPermission API:15 DataServiceExecutionParams API:16 DBOPExecutionParams API:16 SearchQuery API:17 SearchResult API:17 SOAP operations accessibleDBOp API:42 accessibleDS API:36 accessiblePath API:19 chmod API:19 chown API:20 components of web service API:4 data catalog API:18 data services API:34 database operations API:40 executeAdHocDBOp API:43 executeAdHocDBOpWithOutput API:44 executeAdHocDB
AD: Administration Guide API: API Guide C: Command Reference SQL views (continued) managing P:20 modifying P:43 modifying descriptions C:247 names in data catalog O:24 provisioning P:39 provisioning from database connectors C:71 qualified names for O:31 removing P:44 schema types for P:51, P:64 schemas for S:22 searching for AD:233 table types for API:75 viewing P:42 viewing and modifying ACLs P:46 square brackets in command syntax AD:xv, C:xv, P:xi SSL certificates about API:8 generating AD:33 installin
P: Provisioning & Advanced Data Integration Guide Unset permission in ACL AD:242, O:47 update intervals for GDCs, setting C:195 update notifications configuring P:238 defined AD:359, API:93, C:317, O:71, P:299, S:185 enabling AD:311 Update operator S:169 upgrade command C:249 upgrade --info command C:250 upgrading Avaki software interoperability of different versions AD:339 preparation steps AD:341 upgrade planning AD:340 upgrade steps AD:342 upstream, defined S:3 urlLogicBox element P:271 user attributes A
AD: Administration Guide API: API Guide C: Command Reference view --create --file command C:267 view --delete command C:272 view --delete-schedule command C:272 view --depends command C:272 view --garbage-collect command C:273 view generators about O:8, O:25, P:217 caching of input files P:241 configuring update notifications for P:238 defined AD:359, API:93, C:317, O:71, P:299, S:185 for data services setting up P:225 specifying a style sheet engine P:227 for database operations setting up P:221 specify
P: Provisioning & Advanced Data Integration Guide virtualdatabase --show-tables command C:283 virtualschema --deploy command C:285 virtualschema --undeploy command C:286 virutal schema models, See metadata models W web browsers requirements for Avaki software AD:5 setting for selecting run-as users P:27, P:54, P:92, P:224, P:227 web services API:2, API:8 about API:2 access permissions API:9 client examples API:9 data catalog API:18 data services API:34 database operations API:40 development framework API:5
AD: Administration Guide API: API Guide C: Command Reference WSDLs about API:2 as SOAP contracts API:3 AvakiAPI.disco discovery file for .NET clients API:3 AvakiAPIDocLit.wsdl API:3 AvakiAPIRpcEnc.wsdl API:3 AvakiAPIWithMIMEDocLit.wsdl API:3 AvakiAPIWithMIMERpcEnc.