前回に引き続き、2020年6月30日現在の、FCCによる米国の固定ブロードバンド接続統計データの簡易分析です。今回はDataBaseにWindows上のoracle 19c、問い合わせクライアントにSQL Developerを使ってみました。
まず、データを取得します。今回は、こちらからダウンロードし、解凍しました。データサイズは以前より少し増えて11GB程です。
つづいて、フィールドがどうなっているか、WSL2/Debianで確認したところ、前回と同じでした。
次に、テーブルを作成し、データをcsvファイルからインポートします。
まず、データを取得します。今回は、こちらからダウンロードし、解凍しました。データサイズは以前より少し増えて11GB程です。
つづいて、フィールドがどうなっているか、WSL2/Debianで確認したところ、前回と同じでした。
$ head -n1 fbd_us_with_satellite_jun2020_v1.csv LogRecNo,Provider_Id,FRN,ProviderName,DBAName,HoldingCompanyName,HocoNum,HocoFinal,StateAbbr,BlockCode,TechCode,Consumer,MaxAdDown,MaxAdUp,Businessつづいて、Oracle19c上でDBを新規作成します。なお、Oracle 19cは、C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_homeに解凍し、Databaseは、C:\Users\YourID\Oracle\以下にインストールしました。また、インスタンスを追加し、追加したインスタンスに本DBを作成するようにしています。
0. フォルダーとinit.oraを作成 mkdir C:\Users\YourID\Oracle\oradata\USBB mkdir C:\Users\YourID\Oracle\oradata\USBB\orclpdb mkdir C:\Users\YourID\Oracle\oradata\USBB\pdbseed mkdir C:\Users\YourID\Oracle\recovery_area\USBB ============================================================================== notepad "C:\Users\YourID\Oracle\admin\usbb\pfile\initUSBB.ora" ============================================================================== ############################################################################## # Copyright (c) 1991, 2013 by Oracle Corporation ############################################################################## ########################################### # NLS ########################################### nls_language="JAPANESE" nls_territory="JAPAN" ########################################### # SGA Memory ########################################### sga_target=9474m ########################################### # Miscellaneous ########################################### compatible=19.0.0 diagnostic_dest=C:\Users\YourID\Oracle enable_pluggable_database=true ########################################### # Cursors and Library Cache ########################################### open_cursors=300 ########################################### # Cache and I/O ########################################### db_block_size=8192 ########################################### # System Managed Undo and Rollback Segments ########################################### undo_tablespace=UNDOTBS_1 ########################################### # Security and Auditing ########################################### audit_file_dest="C:\Users\YourID\Oracle\admin\usbb\adump" audit_trail=db remote_login_passwordfile=EXCLUSIVE ########################################### # Sort, Hash Joins, Bitmap Indexes ########################################### pga_aggregate_target=3158m ########################################### # Database Identification ########################################### db_name="usbb" ########################################### # Network Registration ########################################### local_listener=LISTENER_USBB ########################################### # File Configuration ########################################### control_files=("C:\Users\YourID\Oracle\oradata\USBB\control01.ctl", "C:\Users\YourID\Oracle\recovery_area\USBB\control02.ctl") db_recovery_file_dest="C:\Users\YourID\Oracle\recovery_area" db_recovery_file_dest_size=12732m ########################################### # Processes and Sessions ########################################### processes=480 ########################################### # Shared Server ########################################### dispatchers="(PROTOCOL=TCP) (SERVICE=orclXDB)" ########################################### # Plugable Database ########################################### ENABLE_PLUGGABLE_DATABASE=TRUE ============================================================================== 1-1. 管理者権限でインスタンスを新規作成 cmd set ORACLE_SID=USBB oradim -NEW -SID USBB -STARTMODE AUTO -PFILE "C:\Users\YourID\Oracle\admin\usbb\pfile\initUSBB.ora" 1-2. パスワードファイルの作成 cd C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\database orapwd file=PWDusbb.ora password=PassW0rd format=12 2. sqlplus にて接続し、データベースを作成 cmd #エラーメッセージをUSで出力する場合 set NLS_LANG=American_America.JA16SJIS set ORACLE_SID=USBB sqlplus /nolog SQL> connect sys as sysdba SQL> startup nomount pfile="C:\Users\YourID\Oracle\admin\usbb\pfile\initUSBB.ora" SQL> CREATE DATABASE USBB LOGFILE GROUP 1 ('C:\Users\YourID\Oracle\oradata\USBB\REDO01.log') SIZE 256M, GROUP 2 ('C:\Users\YourID\Oracle\oradata\USBB\REDO02.log') SIZE 256M, GROUP 3 ('C:\Users\YourID\Oracle\oradata\USBB\REDO03.log') SIZE 256M DATAFILE 'C:\Users\YourID\Oracle\oradata\USBB\SYSTEM01.dbf' SIZE 20000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED SYSAUX DATAFILE 'C:\Users\YourID\Oracle\oradata\USBB\SYSAUX01.dbf' SIZE 2000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE TEMP01 TEMPFILE 'C:\Users\YourID\Oracle\oradata\USBB\TEMP01.dbf' SIZE 2000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED UNDO TABLESPACE UNDOTBS_1 DATAFILE 'C:\Users\YourID\Oracle\oradata\USBB\UNDOTBS01.dbf' SIZE 2000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED CHARACTER SET AL32UTF8 ENABLE PLUGGABLE DATABASE SEED FILE_NAME_CONVERT=('C:\Users\YourID\Oracle\oradata\USBB\','C:\Users\YourID\Oracle\oradata\USBB\pdbseed\') SYSTEM DATAFILES SIZE 1000M AUTOEXTEND ON MAXSIZE UNLIMITED SYSAUX DATAFILES SIZE 1000M AUTOEXTEND ON MAXSIZE UNLIMITED LOCAL UNDO ON SET TIME_ZONE='Asia/Tokyo'; SQL> shutdown 3. spfileの作成とstartup SQL> create spfile='C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\database\SPFILEUSBB.ORA' from pfile='C:\Users\YourID\Oracle\admin\usbb\pfile\initUSBB.ora'; SQL> startup 4. lisnter.ora, tnsnames.oraの編集とtnsリスナの再起動 tnsnames.ora =========================================== # tnsnames.ora Network Configuration File: C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\NETWORK\ADMIN\tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1521)) ) LISTENER_USBB = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1522)) ) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1521)) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = orcl) ) ) USBB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1522)) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = usbb) ) ) =========================================== listner.ora =========================================== # listener.ora Network Configuration File: C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\NETWORK\ADMIN\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\bin\oraclr19.dll") ) (SID_DESC = (SID_NAME = orcl) ) (SID_DESC = (SID_NAME = usbb) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) =========================================== lsnrctl stop lsnrctl start # cdbの構成 cmd set Path=C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\perl\bin;%Path% set ORACLE_SID=USBB set ORACLE_HOME=C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home mkdir C:\Temp sqlplus sys as sysdba SQL> @?\rdbms\admin\catcdb.sql SQL> host perl -I &&rdbms_admin &&rdbms_admin_catcdb --logDirectory &&1 --logFilename &&2 1に値を入力してください: C:\Temp 2に値を入力してください: create_cdb.log Enter new password for SYS: PassW0rd Enter new password for SYSTEM: PassW0rd Enter temporary tablespace name: TEMP SQL> @?/rdbms/admin/catalog.sql SQL> @?/rdbms/admin/catproc.sql SQL> @?/rdbms/admin/utlrp.sql SQL> @?/sqlplus/admin/help/hlpbld.sql HELPUS.SQL SQL> exit sqlplus system as sysdba SQL> @?/sqlplus/admin/pupbld.sql exit ORADIM -EDIT -SID usbb -STARTMODE AUTO -SRVCSTART SYSTEM sqlplus system as sysdba SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=I44)(PORT=1522))'; SQL> alter system register; SQL> exit # pdbの作成 sqlplus system as sysdba SQL> create pluggable database usbbpdb admin user usbb identified by "PassW0rd" file_name_convert = ( 'C:\USERS\YourID\ORACLE\ORADATA\USBB\PDBSEED\', 'C:\USERS\YourID\ORACLE\ORADATA\USBB\USBBPDB\'); SQL> alter pluggable database USBBPDB open; SQL> exit sqlplus / as sysdba SQL> select name, open_mode from v$pdbs; SQL> ALTER SESSION SET CONTAINER = usbbpdb; SQL> SHOW CON_NAME SQL> CREATE USER usbb IDENTIFIED BY PassW0rd; SQL> GRANT DBA, CONNECT , RESOURCE TO usbb; SQL> exit以上で、インスタンスUSBBにPlugable Database usbbpdbを作成し、ユーザ usbbを追加できました。
次に、テーブルを作成し、データをcsvファイルからインポートします。
sqlplus usbb/PassW0rd@192.168.255.44:1522/usbbpdb CREATE TABLESPACE USBBPDB01 DATAFILE 'C:\USERS\YourID\ORACLE\ORADATA\USBB\USBBPDB\USBBPDB01.dbf' SIZE 20000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; CREATE TABLE jun2020 ( LogRecNo VARCHAR2(2000) NOT NULL, Provider_Id VARCHAR2(2000), FRN VARCHAR2(2000), ProviderName VARCHAR2(2000), DBAName VARCHAR2(2000), HoldingCompanyName VARCHAR2(2000), HocoNum VARCHAR2(2000), HocoFinal VARCHAR2(2000), StateAbbr VARCHAR2(100), BlockCode VARCHAR2(200), TechCode VARCHAR2(200), Consumer VARCHAR2(200), MaxAdDown VARCHAR2(100), MaxAdUp VARCHAR2(100), Business VARCHAR2(100), MaxCIRDown VARCHAR2(100), MaxCIRUp VARCHAR2(100), CONSTRAINT jun2020pk PRIMARY KEY (LogRecNo) ) TABLESPACE USBBPDB01; exit cd C:\Users\YourID\Downloads\US-Fixed-with-Satellite-Jun2020 notepad jun2020.ctl ================================= OPTIONS (ERRORS=50) LOAD DATA CHARACTERSET UTF8 INFILE 'C:\Users\YourID\Downloads\US-Fixed-with-Satellite-Jun2020\fbd_us_with_satellite_jun2020_v1.utf8.csv' APPEND INTO TABLE "JUN2020" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' AND '"' TRAILING NULLCOLS ( LogRecNo, Provider_Id, FRN, ProviderName, DBAName, HoldingCompanyName, HocoNum, HocoFinal, StateAbbr, BlockCode, TechCode, Consumer, MaxAdDown, MaxAdUp, Business, MaxCIRDown, MaxCIRUp ) ================================= ## wsl2にてデータをUTF8にコンバート(SJSでは途中でエラーが発生した) cd /mnt/c/Users/YourID/Downloads/US-Fixed-with-Satellite-Jun2020 time iconv -f WINDOWS-31J -t UTF8 fbd_us_with_satellite_jun2020_v1.csv -o fbd_us_with_satellite_jun2020_v1.utf8.csv real 8m50.756s user 1m15.809s sys 0m38.827s ## wsl2は以上 #sqlldrをつかってデータをインポート sqlldr usbb/PassW0rd@192.168.255.44:1522/usbbpdb CONTROL=jun2020.ctl LOG=jun2020.log BAD=jun2020.bad skip=1 ---- 表"JUN2020": 73874350 行は正常にロードされました。 #参考 インポート1850万件あたり約15分、約1時間で全件ロード #使用機材:HDD 2TB, Intel Corei5 6c6t Mem 32GB, Windows10 Pro Workstationデータのインポートができたので早速、クエリを実行してみます。なお、フロントエンドは前述のように、SQL Developwerを使いました。
select maxaddown,provider_id,providername, count(*) from jun2020 group by maxaddown, provider_id, providername order by count(*) desc;結果は以下の通りですが、相変わらず衛星経由の通信が半数程占めているのは前回・前々回と変わりがないようです。 今回は以上です。それでは。
コメント
コメントを投稿